韩天峰
|
d37c979031
|
重构:在预处理阶段获取所有类、函数、常量、属性定义,解决循环依赖的问题
|
5 months ago |
韩天峰
|
27060d9b87
|
refactor(php): 重构变量声明和全局变量处理逻辑
- 将 localVarDecl 重命名为 scopeVarDecl 并更新所有相关调用
- 移除旧的 getStaticVarName 方法,使用新的 escapeStaticVar 方法
- 添加 parseSuperGlobalVar 方法来处理超全局变量
- 添加 hasArgument 和 addScopeGlobalVar 等辅助方法
- 更新 hasVar 方法以支持作用域全局变量检查
- 实现对 $GLOBALS 数组访问的支持,将其转换为相应变量
- 重构全局变量初始化和清理逻辑,使用新的命名规则
- 添加函数上下文中的全局变量数组存储
- 更新模板文件中的全局变量引用方式
|
5 months ago |
韩天峰
|
cc1131f455
|
feat(php): 优化全局变量访问和基准测试函数类型声明
- 在CompilerBase.php中添加标量字符串维度检查,直接返回全局变量名称而不是调用php::global
- 为micro_bench.php中的read_global_var、read_hash、read_str_offset和issetor函数添加int类型声明
- 改进全局变量处理逻辑,避免不必要的php::global调用
- 提升代码类型安全性和性能表现
|
5 months ago |
韩天峰
|
b8516b6ac0
|
fix(php): 修复存根文件函数返回类型检查和类方法处理逻辑
- 修复存根文件中魔术方法(__construct/__destruct/__clone)不需要声明返回类型的问题
- 在FunctionDef构造函数中添加stub参数传递
- 修正main函数参数类型检查逻辑,添加逻辑非运算符
- 移除类方法中重复的'this_'参数添加,在stub函数处理后重新添加
- 添加stub函数的特殊处理逻辑,无具体实现时重置函数定义
- 修复类方法名称处理中的变量引用问题
|
5 months ago |
韩天峰
|
8312de6c73
|
feat(compiler): 添加原生类型支持和标准库函数
- 引入 native_types 类常量定义基本类型
- 添加 std 类提供 int、float、bool 类型转换方法
- 实现 objval 函数进行对象类型验证
- 在 CompilerBase 中添加 nativeTypes 属性控制类型行为
- 修改 getNativeType 方法使用 nativeTypes 判断
- 更新 use 语句解析支持 native_types 导入
- 在 micro_bench 示例中启用严格类型声明
- 添加 str_byte 示例文件测试字符串字节操作
|
5 months ago |
韩天峰
|
26a0439f42
|
feat(php): 优化函数调用并添加类存在性检查支持
- 实现 class_exists 函数的静态分析优化,直接返回已知类的存在性
- 添加 get_class 函数支持,为类型化对象生成字符指针
- 优化 function_exists 函数检查逻辑,提前处理原生函数
- 添加 get_class 测试用例验证功能
- 更新基准测试代码,添加 class_exists 性能测试
- 移除未使用的宏定义,优化常量定义方式
|
5 months ago |
韩天峰
|
67bbfb8852
|
fix(php): 修复AOT编译器中isset操作和属性获取问题
- 添加变量存在性检查,防止AOT编译器操作未定义变量
- 优化单属性读取逻辑,支持原生属性访问
- 移除不必要的数组反转操作提升性能
- 修复属性映射偏移量计算错误,统一加减1024补偿值
- 更新示例代码中的静态变量初始值
|
5 months ago |
韩天峰
|
8eb944312a
|
refactor(compiler): 重构编译器基础类以改善表达式解析
- 统一使用 Expr 命名空间替代 Node\Expr 提高代码一致性
- 添加 OP_NOT_EMPTY 常量用于非空检查操作
- 实现值选择操作的统一处理方法 parseValueSelection
- 优化三元运算符解析逻辑,支持 ?: 操作符的正确处理
- 更新测试用例验证 ?: 操作符功能
- 添加示例文件演示赋值比较功能
- 修复多个表达式解析方法的类型声明一致性问题
- 重构链式操作解析逻辑,改进 isset 和 empty 处理
- 优化数组维度获取、函数调用等表达式的解析实现
|
5 months ago |
韩天峰
|
096a92a62e
|
feat(php): 添加对内部类继承和可空参数的支持
- 在 ArgInfo 类中添加 nullable 属性用于标识参数是否可空
- 在 ClassDef 类中添加 inheritedFromInternalClass 属性用于标记是否继承自内部类
- 实现对继承自内部类的动态方法调用支持
- 添加 Reflection::isInternalClass 方法用于判断类是否为内部类
- 添加 Reflection::hasMethod 方法用于检查类是否存在指定方法
- 在参数解析时设置 nullable 标志
- 修改编译器基类以支持内部类继承的错误处理
- 更新翻译器以正确处理可空参数的调用逻辑
|
5 months ago |
韩天峰
|
52319ccd03
|
refactor(php): 重构函数调用和错误抑制处理逻辑
- 将 isExitExpr 方法中的 Node\Stmt 类型检查更改为 Node\Stmt\Expression
- 移除 getFuncPtr 方法中的 macro 参数及相关逻辑
- 移除 parseFuncCall 方法中的 silent 参数及静默调用相关代码
- 统一函数调用都使用 php::call 方式
- 重写 parseErrorSuppress 方法,使用 error_reporting 函数控制错误报告级别
- 简化调试信息相关的代码生成逻辑
- 删除 cpp_aot_helper.h 中的 CALL 和 CALL_SILENT 内联函数定义
- 更新所有 getFuncPtr 调用移除第二个参数
|
5 months ago |
韩天峰
|
d0d66a0982
|
feat(compiler): 实现对 static 关键字的支持
- 修改 getNativeStaticMethod 方法为 getNativeMethod,增加继承链方法查找逻辑
- 添加对 static::class 和 self::class 的差异化处理
- 实现静态编译时对 static 调用的正确解析和转换
- 增加对 late static binding 的支持
- 添加相关辅助函数 php_get_called_class 和 php_get_called_ce
- 更新测试用例验证 static 关键字功能正确性
|
6 months ago |
韩天峰
|
70eccf59fc
|
feat(closure): 添加闭包生成功能并支持占位符调用
- 实现 ClosureGenerator trait 来统一处理闭包生成逻辑
- 添加 ArrowFunction 和 Closure 表达式的解析方法
- 引入 PlaceHolder 异常用于处理可调用占位符场景
- 添加 PlaceHolderGenerator trait 处理占位符闭包生成
- 实现 genCharPtr 和 genArray 工具函数
- 更新 FuncCall 和 StaticCall 处理以支持占位符语法
- 修复变参占位符的错误处理机制
|
6 months ago |
韩天峰
|
28d12102a4
|
fix(php): 修复对象类型推断中的类名解析问题
- 在类型推断过程中使用 getNamespacedClassName 方法处理类名
- 确保对象存储时使用完整的命名空间类名
- 添加了 Swoole 服务器示例代码
- 修复了 PHP 请求信息中的路径翻译设置
- 更新了 Python 示例中的打印方法调用
|
6 months ago |
韩天峰
|
ac3351b5f4
|
feat(compiler): 支持PHP变长参数展开语法
- 修改parseCallArgs方法以支持...操作符参数展开
- 添加对变长参数展开位置限制的验证逻辑
- 实现变长参数展开的临时变量生成机制
- 更新函数调用参数解析以兼容数组参数传递
- 添加parseArrayArg辅助方法处理数组参数解析
- 为变长参数展开功能增加单元测试用例
- 修复多处函数调用参数格式化问题
|
6 months ago |
韩天峰
|
54c43dc691
|
feat(php): 支持 PHP 命名参数功能
- 实现命名参数解析和重排逻辑
- 添加函数定义参数信息获取功能
- 支持命名参数与位置参数混合使用
- 确保参数按正确顺序传递给原生函数
- 添加命名参数测试用例
- 提供命名参数使用示例
|
6 months ago |
韩天峰
|
aa6d81d2a7
|
feat(compiler): 添加可变参数支持功能
- 在 ArgInfo 类中添加 variadic 属性用于标识可变参数
- 实现编译器对可变参数的验证逻辑,确保可变参数位于最后位置
- 修改参数类型处理逻辑,将可变参数转换为数组类型
- 更新函数调用参数解析,支持可变参数的展开和传递
- 在翻译器中实现可变参数的 C++ 代码生成逻辑
- 添加遍历可变参数的循环处理机制
- 新增可变参数功能的测试用例和示例文件
- 完善参数列表生成时对可变参数的特殊处理
|
6 months ago |
韩天峰
|
aa6be88c6c
|
feat(php): 添加对PHP枚举类型的支持
- 在ClassDef实体中添加enum属性用于标识枚举类
- 修改编译器基类以支持枚举常量访问的特殊处理
- 移除旧的枚举示例文件并添加新的测试用例
- 更新翻译器以识别和标记枚举类型的类定义
|
7 months ago |
韩天峰
|
46e15ca247
|
feat(compiler): 添加对 Match 表达式和枚举的支持
- 在 CompilerBase 中添加了对 Expr_Match 节点的解析支持
- 修改 parseTernary 方法参数类型为 Node\Expr\Ternary
- 添加了 parseMatch 方法用于处理 Match 表达式
- 在 Preprocessor 中添加对 Stmt_Enum 和 Stmt_EnumCase 的预处理支持
- 扩展 prepareClass 方法以支持枚举类型的处理
- 在 Translator 中添加对 Stmt_Enum 的翻译支持
- 修改 parseClass 方法以正确处理枚举定义
- 添加测试文件 closure_016.phpt 和 closure_017.phpt 验证闭包功能
- 添加枚举示例文件 enum1.php 展示枚举用法
|
7 months ago |
韩天峰
|
8bc3c66499
|
feat(examples): 添加PHP扩展示例和曼德布罗特集计算功能
- 新增 myext/test.php 文件,包含基本的PHP函数示例
- 添加 bench/test1.cc 文件,实现曼德布罗特集图像生成功能
- 实现复数迭代算法用于绘制曼德布罗特分形图像
- 添加文件输出和内存流处理功能
- 集成PHPX库进行原生C++与PHP交互
- 实现命令行参数解析和图像尺寸控制
- 添加二进制和文本格式输出支持
|
7 months ago |
韩天峰
|
f2e7b70043
|
feat(compiler): 添加闭包表达式支持
- 在 CompilerBase.php 中添加对 Expr_Closure 节点类型的解析处理
- 实现 parseClosure 方法来编译 PHP 闭包为 C++ 代码
- 添加临时变量生成和缩进级别管理逻辑
- 处理闭包参数和 use 子句中的变量捕获
- 验证闭包中使用的变量是否已定义
- 添加闭包示例文件 closure.php 和对应测试文件
- 修复 fcall.php 中的调试输出注释问题
|
7 months ago |
韩天峰
|
ca4a34204c
|
feat(compiler): 添加对 main 函数的特殊支持和参数验证
- 在编译器中实现 main 函数的特殊处理逻辑
- 验证 main 函数的参数必须为 (int $argc, array $argv) 格式
- 确保 main 函数返回类型为 void
- 在扩展模板中添加 main 函数调用支持
- 根据构建模式条件编译模块入口点
- 移除旧的静态 main 函数调用方式
- 更新示例项目以使用正确的 main 函数签名
|
7 months ago |
韩天峰
|
288021d16c
|
feat(compiler): 添加对孤立代码的检测和错误处理
- 在 CompilerBase 中添加 foundStrayCode 方法用于报告孤立代码错误
- 在 Preprocessor 中为 Stmt_Expression 类型添加孤立代码检测
- 防止在扩展模式下生成名为 main 的函数
- 添加 empty-2.phpt 测试用例验证空值合并操作符功能
|
7 months ago |
韩天峰
|
8fd83ae8b0
|
feat(trie): 添加字典树数据结构实现
- 实现了Node和Trie类的基本结构
- 添加了insert方法用于插入单词
- 添加了search方法用于搜索完整单词
- 添加了startsWith方法用于前缀匹配
- 实现了字典树的完整功能逻辑
fix(compiler): 修复变量声明和数组访问的代码生成问题
- 为int、float、bool类型变量添加默认初始化值0
- 修复数组维度解析中的括号处理逻辑
- 解决赋值表达式上下文中的数组访问问题
example(prime): 添加素数计算性能测试示例
- 实现了NthPrime函数计算第n个素数
- 添加了时间测量功能
- 提供了30000个素数计算的性能测试用例
|
7 months ago |
韩天峰
|
75a9309801
|
feat(php): 添加标量类型检查和yield表达式支持
- 新增AstNodeType::isScalar方法用于检查标量类型
- 在CompilerBase中添加对Expr_Yield和Expr_YieldFrom表达式的错误处理
- 修改变量表达式判断逻辑,排除标量类型的情况
- 添加digit_count示例程序用于数字位数计算性能测试
|
7 months ago |
韩天峰
|
8257f8a1c4
|
feat(generator): 添加常量符号注册功能
- 启用数组和对象常量定义支持
- 实现符号注册函数自动生成
- 添加 register_symbols 扩展模板支持
- 优化常量解析跳过复杂类型处理
- 新增模块符号注册函数匹配逻辑
|
7 months ago |
韩天峰
|
0723e9f01f
|
feat(php): 添加对引用参数和命名参数的错误检查
- 在参数解析过程中添加了对引用参数(byRef)的支持检查
- 在函数调用中添加了对命名参数的支持检查
- 当遇到引用参数时抛出致命错误
- 当遇到命名参数时抛出致命错误
- 更新示例文件以注释相关测试代码
|
7 months ago |
韩天峰
|
120e89ac79
|
feat(examples): 添加多个示例文件演示核心功能
- 添加 autoload_class.php 示例演示类自动加载功能
- 添加 check_parser_api.php 示例验证 PHP 解析器 API 正确性
- 添加 file_scanner_example.php 示例展示文件扫描器基本用法
- 添加 file_scanner_usage.php 示例演示文件扫描器高级用法
- 添加 scan_with_exclusions.php 示例展示排除模式功能
- 添加 simple_scan.php 示例演示简单扫描操作
- 添加 test_exclusions.php 示例测试排除模式有效性
- 添加 test_fnmatch.php 示例验证路径匹配函数行为
- 添加 test_php_parser_check.php 示例测试 PHP 解析器语法检查
- 添加 test_php_syntax_check.php 示例验证 PHP 语法检查功能
- 添加 trait.php 示例演示 trait 特性用法
|
7 months ago |
韩天峰
|
423c10fe47
|
feat(compiler): 实现空值检查表达式解析功能
- 添加了对复杂嵌套表达式的 empty() 函数支持
- 实现了数组维度获取和属性访问的解析逻辑
- 添加了 SkipException 类用于跳过错误节点处理
- 优化了全局变量访问的错误处理机制
- 增强了类型转换和函数调用的参数处理
- 更新了测试用例验证空值检查功能正确性
- 修复了编译器在处理未定义类时的错误判断
|
7 months ago |
韩天峰
|
2963e0b4ad
|
refactor(Php): 优化函数调用解析器并重构测试代码
- 引入 getArg 函数简化参数解析逻辑
- 为 abs、ord、chr 和 array_key_exists 函数添加优化支持
- 激活 micro_bench.php 中被注释的性能测试用例
- 为 LeetCode 示例文件添加 main 函数结构
- 在单词接龙算法中改进条件判断的可读性
- 移除 PHP 标签并优化二叉树遍历的条件表达式
|
7 months ago |
韩天峰
|
c58a85baa2
|
fix(stub): 修复常量生成中的表达式类型检查问题
- 添加了对非标量字符串表达式的类型验证
- 修复了常量类型未实现时的错误消息显示
- 统一使用 String_ 类型检查替代完整命名空间
- 将 shell_exec 替换为 passthru 以获取编译返回状态
- 添加编译失败时的错误提示机制
|
7 months ago |
韩天峰
|
57e1790639
|
feat(compiler): 实现对静态属性和常量的原生支持
- 添加 hasConstant、getMethod 和 getConstant 方法到 ClassDef 类
- 在 CompilerBase 中实现静态属性和常量的原生解析功能
- 添加 parseNativeStaticPropertyFetch 和 findNativeStaticProperty 方法
- 修改 getFuncPtr 方法以支持宏参数
- 实现对类常量和静态属性的直接访问优化
- 添加对后置操作符中属性获取的支持
- 更新 examples/micro_bench.php 测试用例以验证功能
- 在 PropertyDef 中添加 isStatic 方法判断静态属性
- 重构预处理器对常量定义的处理逻辑
|
7 months ago |
韩天峰
|
08635302b6
|
refactor(php): 优化函数调用优化器中的function_exists处理
- 移除CompilerBase.php中多余的空行
- 重构FuncCallOptimizer.php中的function_exists逻辑,支持字符串字面量的大小写转换和转义处理
- 在function_exists调用中添加严格模式参数支持
- 更新micro_bench.php中的代码格式和测试执行逻辑
- 激活之前被注释掉的性能测试用例
|
7 months ago |
韩天峰
|
6dd8d2d6bc
|
refactor(Php): 优化字符串字面量处理和函数调用优化
- 提取字符串字面量处理逻辑到独立方法 getLiteralString
- 将 C++ 接口参数类型从 const char* 改为 const php::String&
- 修改字面量字符串数组类型从 php::Var 为 php::Str
- 添加 function_exists 函数调用的优化处理
- 更新头文件中的函数声明和内联函数参数类型
- 调整示例代码中的性能测试部分注释状态
|
7 months ago |
韩天峰
|
6632629f58
|
feat(extension): 添加请求生命周期钩子函数支持
- 在扩展模板中添加 PHP_RINIT 和 PHP_RSHUTDOWN 函数实现
- 配置模块入口结构以启用请求初始化和关闭回调
- 更新主程序初始化逻辑以使用模块生命周期函数
- 实现请求启动和关闭时的应用程序初始化清理功能
- 解决 PHP 内部字符串处理的双释放问题
- 简化示例代码以演示全局变量访问功能
|
7 months ago |
韩天峰
|
1c074d140e
|
feat(php): 实现PHP右结合赋值操作符支持
- 添加isArrayDimFetch方法用于检查数组维度获取表达式
- 实现parseRightAssociativeAssign方法处理右结合赋值链
- 重构parseAssign方法以支持嵌套赋值表达式解析
- 更新parseArrayDimStore方法处理空维度读取错误
- 添加右结合赋值功能的测试用例和示例文件
|
7 months ago |
韩天峰
|
96ecb8aae0
|
feat(php): 支持联合类型并优化编译器状态管理
- 添加 UnionType 支持以处理 PHP 联合类型语法
- 实现 resetClass 和 resetFunction 方法来重置编译器状态
- 在适当位置调用状态重置方法确保编译器状态一致性
- 修复类方法定义中的访问修饰符处理逻辑
- 更新示例文件以演示联合类型功能
- 调整项目配置文件中的源码路径设置
|
7 months ago |
韩天峰
|
1a8082ce2f
|
fix(build): 修复源文件路径解析和编译选项配置问题
- 修复相对路径和绝对路径的处理逻辑
- 添加对不存在源文件的错误检查和提示
- 支持 cxxflags 和 ldflags 配置为数组格式
- 改进路径规范化和文件存在性验证
|
7 months ago |
韩天峰
|
8cf58ebf70
|
feat(build): 支持项目配置文件中定义源文件路径
- 添加 sources 字段支持在 project.yml 中指定源文件
- 实现相对路径转换为绝对路径的功能
- 支持单个文件和目录的混合配置
- 优化文件列表生成逻辑
- 修复源文件路径解析问题
- 更新项目构建流程以使用新配置格式
|
7 months ago |
韩天峰
|
09af173013
|
feat(compiler): 添加项目配置文件支持和编译选项扩展
- 在 CompilerBase 中新增 cxxflags 和 ldflags 属性用于编译选项配置
- 集成 symfony/yaml 依赖以支持 YAML 配置文件解析
- 实现 project.yml 配置文件格式用于定义项目构建参数
- 添加 parseProjectYaml 方法解析 YAML 配置并设置编译标志
- 修改 getFiles 方法以支持目录扫描和 YAML 配置文件处理
- 更新 composer.json 和 composer.lock 文件添加新依赖项
|
7 months ago |
韩天峰
|
1fc07ee729
|
feat(compiler): 添加对mixed类型支持和优化函数调用解析
- 在解析函数声明时调整了返回类型检查逻辑,先验证类型存在性再进行类型转换
- 新增对mixed类型的参数类型解析,映射到TYPE_VAR类型
- 添加对resource类型的错误处理机制
- 将原parseCallArgs方法替换为专门的parseNativeCallArgs方法用于本地函数调用
- 在C++主程序中添加php::request_init()初始化调用
- 新增埃拉托斯特尼筛法求素数示例程序及对应的vector扩展实现
- 添加vector.stub.php存根文件定义vector相关函数接口
|
7 months ago |
韩天峰
|
c7c375019d
|
refactor(compiler): 重构编译器配置和代码逻辑
- 将命令行参数配置提取到独立的配置文件 compiler_options.php
- 添加新的调试选项包括 debug-line 和 force 参数
- 替换 var_dump 为 symfony/var-dumper 的 dump 函数
- 优化赋值表达式处理逻辑,改进 inAssignExpr 状态管理
- 修复返回语句中间接引用可能导致的内存安全问题
- 添加临时变量确保返回值的内存安全
- 重构属性访问解析方法,传入赋值状态参数
- 更新 composer 依赖,添加 symfony/var-dumper 支持
- 移除调试相关的 var_dump 输出语句
- 优化数组维度获取和属性访问的解析流程
|
7 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列表生成逻辑并修复头文件包含顺序问题
- 重构存根文件生成流程并改进错误报告机制
|
7 months ago |
韩天峰
|
ea77b6d746
|
feat(compiler): 添加编译模式支持和目标名称配置
- 实现二进制文件和PHP扩展两种编译模式
- 添加目标名称配置功能
- 支持通过命令行参数指定编译模式
- 更新编译选项以支持不同的构建模式
- 添加main函数存在性检查确保二进制构建完整性
- 修改链接过程以支持共享库生成
- 添加示例文件array_append.php和ref.php用于测试
- 更新帮助文档和命令行参数说明
|
7 months ago |
韩天峰
|
9499aac142
|
refactor(php): 更新PHP编译器中的类型转换函数命名
- 将php::to_int重命名为php::toInt以符合驼峰命名规范
- 将php::to_float重命名为php::toFloat以符合驼峰命名规范
- 将php::to_string重命名为php::toString以符合驼峰命名规范
- 将php::to_object重命名为php::toObject以符合驼峰命名规范
- 将php::to_array重命名为php::toArray以符合驼峰命名规范
- 将php::to_bool重命名为php::toBool以符合驼峰命名规范
- 移除examples/ns.cc文件中的测试代码
|
7 months ago |
韩天峰
|
a529ccf306
|
fix(php): 修复对象值解析和函数参数处理问题
- 修复了对象值解析时未正确解析标识符的问题
- 为 FunctionDef 类的 argInfoList 属性添加了 PHPDoc 注释
- 在示例文件中添加了测试函数来验证参数处理功能
- 实现了对带默认值参数的正确处理逻辑
|
7 months ago |
韩天峰
|
9b94b287cb
|
refactor(php): 移除属性赋值解析方法并优化对象初始化
- 删除了 Expr_PropertyFetch 类型的属性赋值解析逻辑
- 在 Test 类中添加构造函数以简化对象初始化
- 更新示例代码使用构造函数进行对象创建和属性赋值
|
7 months ago |
韩天峰
|
f8be1767e6
|
feat(php): 添加对象类型推断和方法调用优化功能
- 新增 isNewExpr、isNameExpr、isScalarString、isFuncCallExpr 等 AST 节点类型判断方法
- 移除 PROPERTY_OFFSETS 常量并优化变量声明结构
- 添加 objects 属性用于存储变量对应的对象类型信息
- 实现对象创建和函数调用时的类型推断逻辑
- 扩展 convertObjectExpr 方法支持指定类名参数
- 重构原生方法调用检查逻辑,实现更精确的方法查找机制
- 添加访问权限检查功能确保私有方法不被外部调用
- 优化 FuncCallOptimizer 支持 strval 和 objval 函数转换
- 添加示例文件展示对象操作功能
|
7 months ago |
韩天峰
|
0f3ccb98cd
|
feat(php): 添加属性偏移量支持和性能优化
- 引入 Node 类型导入并添加 isIdExpr 方法用于标识符检查
- 新增 PROPERTY_OFFSETS 常量和 getPropertyOffset 方法用于属性偏移量计算
- 重构命名空间相关方法,统一使用 getNativeName 替代 getNativeFunctionName
- 优化属性获取逻辑,在特定条件下使用属性偏移量提升性能
- 在模板中生成属性偏移量声明和初始化代码
- 添加性能测试脚本 prof.php 和性能分析配置调整
|
7 months ago |
韩天峰
|
3959fee828
|
test(zend): 添加heredoc语法和半保留字测试用例
- 添加GH-16630 UAF漏洞相关编码转换和heredoc测试
- 添加基本heredoc语法测试用例
- 添加二进制heredoc语法测试用例
- 添加变量替换相关heredoc测试用例
- 添加复杂变量替换相关heredoc测试用例
- 添加半保留字作为静态类方法的测试用例
- 添加公共测试辅助文件nowdoc.inc
- 添加示例代码文件lv3_prop.php和prop.php
|
7 months ago |
韩天峰
|
1b78fc7fd9
|
feat(php): 添加PHP编译器基础功能和八皇后问题示例
- 在CompilerBase中初始化result变量以避免未定义变量错误
- 优化Stmt_Nop节点处理逻辑,移除不必要的赋值操作
- 添加对空结果和空后续语句行的条件判断,避免向输出添加空内容
- 实现parseAssignPropertyArrayDim方法用于处理对象属性数组维度赋值操作
- 在parseAssign方法中添加属性获取检查,支持属性赋值操作解析
- 添加dump调试方法用于在指定行号时输出节点信息
- 新增EightQueue.php示例文件,实现优化版八皇后问题求解算法
- 修改Preprocessor以支持Trait语句的预处理
- 更新Translator以支持Trait语句的转换处理
- 扩展类相关方法签名以接受Trait节点类型参数
|
7 months ago |