韩天峰
6cfab3bf9a
refactor(bin): replace define with const in tpc.php
...
- Changed TYPEPHP_PHP_SCRIPT_ENTRY from define to const declaration
- Maintained same boolean value of true for the constant
- Updated syntax to use PHP const keyword instead of define function
2 months ago
韩天峰
020666cced
改进 Windows 打包和前置检测
2 months ago
韩天峰
b0455f143a
rename(compiler): update compiler executable name from compiler.php to tpc.php
...
- Change all documentation references from bin/compiler.php to bin/tpc.php
- Update composer.json with new binary entry point
- Update run-tests.php default compiler path
- Update all example commands and guides to use new executable name
- Add composer package configuration for swoole/typephp
- Update README installation instructions for new naming convention
3 months ago
韩天峰
549630e83e
fix(build): 修正编译器入口文件路径
...
- 将 require 语句从 compiler-build.php 更改为 compiler.php
- 确保正确的编译器主文件被加载执行
4 months ago
韩天峰
bcc518406f
refactor(compiler): 重构编译器主逻辑到独立函数
...
- 将编译器核心逻辑从 compiler.php 移至 src/compiler-build.php
- 添加 main 函数封装编译流程
- 优化 ROOT_PATH 定义检查避免重复定义
- 使用 require_once 替代 require 避免重复加载
- 保留命令行参数解析和执行功能
4 months ago
韩天峰
3045259ae0
feat(compiler): 添加编译后运行功能支持
...
- 实现命令行参数解析功能,支持路径和选项参数
- 添加 --run/-r 选项用于编译完成后立即执行二进制文件
- 更新帮助信息显示新的运行选项
- 修改 build 方法返回目标文件路径而不是 void
- 实现 run 方法执行编译后的二进制文件
- 添加目标参数获取功能支持传递给执行程序
- 移除简单的文件参数检查逻辑
4 months ago
韩天峰
2912b40b0f
feat(compiler): 添加原生类型支持和属性获取功能
...
- 在编译器基础类中添加了 Expr_PropertyFetch 表达式处理逻辑
- 实现了原生属性变量检测和类型推断功能
- 新增了属性获取表达式的原生属性变量标记机制
- 更新了多个示例文件以使用 native_types 命名空间
- 添加了默认数组属性测试用例验证功能
- 集成了 polyfills 支持并在主入口点传递命令行参数
6 months ago
韩天峰
e5b7955fa1
refactor(translator): 重构PHP到C++编译器的文件处理逻辑
...
- 将prepare方法重命名为prepareFile,convert方法重命名为convertFile
- 添加ignore路径配置支持,可在项目配置中忽略特定文件或目录
- 重构编译器主流程,将文件扫描、预处理和转换分离为独立步骤
- 移除不必要的异常类引用,优化代码结构
- 添加文件过滤功能,支持在预处理阶段跳过无效文件
- 修复预处理器中的默认情况处理逻辑,统一错误处理方式
6 months ago
韩天峰
d85353f8eb
feat(compiler): 实现常量值解析和类型安全的值生成
...
- 在 ConstantDef 中添加 valueExpr 属性以支持表达式解析
- 将 gen_stub.php 移动到 src 目录并重构为可重用函数
- 实现 getClassConstValue 和 getConstValue 方法处理类常量和全局常量
- 添加 genCValue 工具方法支持不同类型的 C 值生成
- 修改预处理器存储常量表达式节点信息
- 更新编译器基础类 getRelativePath 方法为公共访问
- 优化 stub 文件生成逻辑使用内部函数替代 shell 执行
- 添加错误处理机制替换原有的直接退出方式
6 months ago
韩天峰
95e7b5f6e4
refactor(compiler): 重构编译器代码结构并修复空指针检查问题
...
- 移除编译器主函数中过早的函数声明和全局变量声明生成逻辑
- 将扩展源文件生成逻辑移至翻译器类的编译流程中
- 修改genExtension方法返回生成的文件路径而不是接收文件参数
- 修复预处理器中对类标志的空指针检查,避免访问未设置的属性
- 更新并行编译时的进度显示颜色从蓝色调整为浅蓝色
- 重新组织源文件编译顺序,确保扩展模块文件正确加入编译列表
6 months ago
韩天峰
37b44368eb
feat(compiler): 添加对ThinkPHP和Laravel项目的编译支持
...
- 在.gitignore中添加thinkphp、laravel和tmp项目目录的忽略规则
- 修改错误处理逻辑,使用统一的output方法替代直接echo输出
- 新增getFullClassName方法用于获取完整类名
- 添加Unsupported异常类型并改进语法检查
- 实现自继承类的检测和错误报告功能
- 优化类名解析逻辑,提高编译器兼容性
6 months ago
韩天峰
6d9c3da0c0
feat(compiler): 添加并行编译功能支持多任务同时执行
...
- 将原有逐个编译逻辑替换为统一的 compile 方法
- 新增 job 参数用于控制并行任务数量,默认值为 4
- 实现基于 pcntl_fork 的并行编译机制
- 添加并行模式下的错误处理和输出管理
- 在帮助信息中增加新的并行编译选项说明
- 优化编译过程中的进度提示和状态显示
7 months ago
韩天峰
746dc23680
feat(core): 添加进程标题设置和获取功能
...
- 在编译器中添加了 php_cli_process_title.c 和 ps_title.c 源文件
- 在扩展模板中添加了头文件包含和函数注册
- 实现了 cli_set_process_title 和 cli_get_process_title 函数
- 集成了跨平台的进程标题修改功能
- 添加了命令行参数保存和清理机制
- 提供了完整的错误处理和状态码返回
7 months ago
韩天峰
67ace98bb6
refactor(php): 将异常类移动到Exception命名空间
...
- 将RedoException重命名为Redo并移至PhpAot\Php\Exception命名空间
- 将SkipException重命名为Skip并移至PhpAot\Php\Exception命名空间
- 将SyntaxError移至PhpAot\Php\Exception命名空间
- 将Unsupported移至PhpAot\Php\Exception命名空间
- 更新所有相关文件中的use语句和异常引用
- 移除不再使用的PrettyPrinter导入
8 months ago
韩天峰
a6a06ca859
feat(translator): 增强PHP到C++编译器功能
...
- 在ClassLikeDef中添加getNamespacedName方法的symbolic参数支持
- 简化compiler.php中的文件扫描逻辑并移除冗余代码
- 在CompilerBase中添加函数定义存储数组和相关属性
- 更新错误处理方法结构并分离基本错误和致命错误处理
- 在extension.cc模板中移除类信息函数声明并添加函数入口表
- 修改属性偏移获取逻辑以支持非符号化命名空间
- 添加嵌入式模块获取函数实现
- 重构gen_stub.php中的类和函数信息生成逻辑
- 移除全局变量genClass并更新命令行选项处理
- 重命名examples/class/test.php为examples/appx/test.php并添加测试常量和函数
- 在Translator中添加PHP源文件和arginfo头文件数组管理
- 更新目标名称验证以检查C++保留关键字
- 实现getFiles方法统一文件路径处理逻辑
- 添加函数包装器生成功能和类注册函数提取
- 优化类CE列表生成逻辑并修复头文件包含顺序问题
- 重构存根文件生成流程并改进错误报告机制
9 months ago
韩天峰
ea77b6d746
feat(compiler): 添加编译模式支持和目标名称配置
...
- 实现二进制文件和PHP扩展两种编译模式
- 添加目标名称配置功能
- 支持通过命令行参数指定编译模式
- 更新编译选项以支持不同的构建模式
- 添加main函数存在性检查确保二进制构建完整性
- 修改链接过程以支持共享库生成
- 添加示例文件array_append.php和ref.php用于测试
- 更新帮助文档和命令行参数说明
9 months ago
韩天峰
a6826d5fd0
feat(compiler): 添加PHP语法错误处理和类常量重复定义检查
...
- 在编译器中引入SyntaxError异常类用于处理PHP语法错误
- 修改预处理器捕获PHP解析错误并转换为SyntaxError异常
- 实现类常量重复定义的检测逻辑并抛出致命错误
- 添加多个测试用例验证类常量相关错误场景
- 更新编译器跳过包含语法错误的文件处理流程
9 months ago
韩天峰
ec106db274
refactor(compiler): 将全局变量生成改为扩展生成
...
- 修改编译器脚本中的文件名从 global_vars.cc 到 extension.cc
- 将 Translator 类中的 genGlobalVars 方法重命名为 genExtension
- 更新编译流程以生成扩展文件而不是全局变量文件
- 调整相关变量命名以反映功能变更
9 months ago
韩天峰
e1bb057420
feat(compiler): 添加缓存机制和强制编译选项
...
- 在Preprocessor类中添加enableCache属性控制缓存功能
- 实现getCppFile和getObjectFile方法用于文件路径处理
- 添加hasCppFileCache方法检查C++文件缓存是否存在
- 在prepare方法中集成缓存检查逻辑跳过已存在的缓存文件
- 在Translator类中添加force参数支持强制编译模式
- 移除原有的hasCache方法并优化convert方法的缓存处理
- 添加hasObjectFileCache方法检查对象文件缓存状态
- 更新compileFile方法集成对象文件缓存检查功能
- 在帮助信息中显示新的force选项说明
9 months ago
韩天峰
f3944a5259
refactor(compiler): 重构PHP到C++编译器实现
...
- 修改编译流程,添加对象文件路径管理功能
- 实现缓存检查机制,跳过已存在的编译文件
- 重命名MethodDef中的def属性为functionDef
- 提取表达式类型转换逻辑到独立方法convertExprFromType
- 添加扩展模板文件extension.cc.php,使用模板渲染替代手动代码生成
- 修改main.cc文件结构,使用模块注册方式替代函数注册
- 更新编译参数,添加-Wall编译选项
- 实现方法调用参数传递的动态构建机制
- 优化全局变量初始化和清理函数的实现
9 months ago
韩天峰
ecbb00542e
fix(compiler): 修复PHP到C++编译器中的类型解析问题
...
- 在循环中添加键值引用以支持数组元素删除操作
- 当遇到不支持的语法时从列表中移除对应文件
- 添加varTypes属性用于存储变量类型信息
- 为parseType方法添加返回类型声明
- 将未知类型默认处理为对象类型并记录到varTypes中
- 在示例代码中添加测试函数验证类型解析功能
9 months ago
韩天峰
ca1ee88d5f
支持 class 处理,初步版本
9 months ago
韩天峰
955a3b0e4f
refactor(compiler): 优化路径验证逻辑
...
- 将路径验证和赋值逻辑分离,提高代码可读性
- 使用临时变量存储realpath结果,避免重复调用
- 先验证路径存在性再进行赋值操作
9 months ago
韩天峰
c601729ddc
feat(translator): 更新编译器生成全局变量和常量功能
...
- 修改编译器将函数声明生成到构建目录的 include/php_func_decl.h 文件
- 添加全局变量源文件生成功能,输出到构建目录的 global_vars.cc 文件
- 添加 main.cc 文件到源文件列表中
- 将全局常量注册到 PHP 环境中
- 修改链接器合并二进制文件的方式,使用动态对象文件列表
- 添加文件写入安全检查和目录自动创建功能
- 移除独立的链接器脚本文件
- 添加常量示例文件用于测试
9 months ago
韩天峰
ba3ffd885f
支持 C++ Native 函数注入,stub 存根文件
9 months ago
韩天峰
4162b79113
try/catch 语法支持
9 months ago
韩天峰
ec836bcb31
nbody-php-3 算法
9 months ago
韩天峰
1a1134d974
对象操作,方法调用、静态方法调用、属性读取
9 months ago
韩天峰
7c5c716b36
支持目录处理
9 months ago
韩天峰
f072f944b2
函数定义处理
9 months ago
韩天峰
765eb75869
运算操作符 单元测试
9 months ago
韩天峰
f1bbcfe64c
优化 Switch 脚本
10 months ago
韩天峰
013addcafd
Update
10 months ago
韩天峰
348641cf01
优化运算逻辑代码,左值和右值均为 var 类型时,直接用映射方法而不是转为整数
10 months ago
韩天峰
f2d6ee2b63
update
10 months ago
韩天峰
ec25a3cbf0
update
10 months ago
韩天峰
bf83ceee87
update
10 months ago
韩天峰
4d75f54c0d
update
1 year ago
韩天峰
f8830edb3b
更新
1 year ago
韩天峰
dcb1f79e05
支持更多 PHP 语法
1 year ago
韩天峰
5fb2fc1ac5
init
3 years ago