韩天峰
|
4b1b20c7ca
|
refactor(php): 重构属性访问解析逻辑并引入编译阶段管理
- 引入 PropertyAccessResolver 类统一处理属性访问逻辑
- 添加编译阶段管理 (idle/prepare/convert) 确保模块正确使用时机
- 将 isSameClassName、isSameOrSubclassOf、canAccessProtectedProperty 方法委托给 resolver
- 实现 PropertyAccessResult DTO 承载属性访问解析结果
- 为 Preprocessor 和 Translator 添加编译阶段进入/恢复逻辑
- 创建 CompilerPhaseTest 验证阶段管理功能
- 更新文档说明重构计划和模块拆分方向
- 修改函数返回值测试以适配重构后的测试需求
|
2 months ago |
韩天峰
|
3d6e0b5689
|
feat(php): 添加对参数解包后位置参数的验证支持
- 在函数调用参数验证中添加了对参数解包的支持
- 实现了 hasUnpackCallArg 方法用于检测参数解包
- 添加了 shouldUseDynamicCallForNativeArgs 方法优化动态调用判断
- 修复了参数解包后不能跟位置参数的错误检查逻辑
- 更新了命名参数和解包参数的验证顺序
- 添加了多个测试用例验证参数解包功能的正确性
- 增加了 AOT 测试确保多异常捕获和抛出异常对象的功能正常
|
2 months ago |
韩天峰
|
00f79ecdc1
|
feat(php): 实现PHP函数调用中的命名参数和参数解包功能
- 添加对命名参数语法的支持,包括参数验证和解析逻辑
- 实现参数解包功能,支持...操作符展开数组参数
- 添加hasNamedCallArg和hasUnpackBeforeNamedArg辅助方法进行参数检查
- 实现genCallUserFuncArray方法用于处理复杂参数场景
- 添加对参数顺序的验证,防止解包后使用命名参数的情况
- 更新parseCallArgs方法以支持分离命名参数和位置参数
- 添加相关测试用例验证新功能的正确性
|
2 months ago |
韩天峰
|
0bfa2869c5
|
feat(compiler): 支持命名参数和提升属性功能
- 添加了对函数和构造函数中命名参数的支持
- 实现了提升属性(Property Promotion)功能
- 新增了对 C++ 保留关键字作为参数名的支持
- 完善了闭包类型检查和参数验证逻辑
- 增加了内部函数调用的命名参数验证
- 优化了参数类型检查和错误提示信息
- 添加了相关测试用例验证功能正确性
|
2 months ago |
韩天峰
|
19164e92bc
|
docs(compiler): 添加AOT编译速度优化研究文档并完善测试用例
- 添加AOT编译速度优化研究笔记,涵盖瓶颈分析和优化方向
- 新增构造函数抛异常析构函数调用测试用例
- 添加混合数组默认参数函数测试用例
- 补充私有方法重写功能测试代码
- 增加抽象类实例化相关测试文件
|
3 months ago |
韩天峰
|
1e3cf4d25e
|
refactor(php): 优化条件表达式解析逻辑
- 提前解析条件表达式并存储到变量中避免重复计算
- 更新三元运算符表达式的构建方式提高代码可读性
- 添加 preg_match 函数相关的 AOT 编译测试用例
- 添加对象链接操作符相关的引用测试用例
- 完善正则匹配功能的自动化测试覆盖
|
3 months ago |
韩天峰
|
8517481c52
|
fix(php): 修正print函数的编译输出
- 将php::echo改为php::print以正确处理print表达式
- 添加完整的print函数测试用例验证功能正确性
|
3 months ago |
韩天峰
|
fc2cc22594
|
feat(php): 添加对原生函数调用中命名参数的支持
- 在 checkNativeCallArgs 中验证命名参数
- 实现 getFunctionArgNameIndex 和 getVariadicArgIndex 辅助方法
- 添加 validateNativeNamedCallArgs 方法验证命名参数规则
- 重构函数调用参数处理逻辑支持命名参数重排序
- 实现变长参数和命名参数的混合处理
- 添加构建原生变长参数的方法
- 更新参数类型转换逻辑
- 添加相关测试用例验证功能正确性
|
3 months ago |
韩天峰
|
b1284be533
|
对 phpt 测试文件进行分类
|
3 months ago |
韩天峰
|
8865796b43
|
feat(php): 实现 compact 函数支持并增强函数重定义检查
- 添加 compact 函数的功能实现和语法优化
- 移除 UNSUPPORTED_FUNCTIONS 列表中的 compact 条目
- 在 Preprocessor 中添加防止重定义内置函数的检查
- 实现 genCompact 方法来处理 compact 函数调用
- 添加测试用例验证 compact 函数功能正确性
- 增强错误处理机制以捕获非法变量使用情况
|
5 months ago |
韩天峰
|
26a0439f42
|
feat(php): 优化函数调用并添加类存在性检查支持
- 实现 class_exists 函数的静态分析优化,直接返回已知类的存在性
- 添加 get_class 函数支持,为类型化对象生成字符指针
- 优化 function_exists 函数检查逻辑,提前处理原生函数
- 添加 get_class 测试用例验证功能
- 更新基准测试代码,添加 class_exists 性能测试
- 移除未使用的宏定义,优化常量定义方式
|
5 months ago |
韩天峰
|
eb2eacc69a
|
feat(compiler): 添加对PHP内置函数func_get_arg和func_get_args的支持
- 在CompilerBase中添加isScalarInt方法用于判断表达式是否为标量整数
- 为parseScalar方法添加返回类型声明string
- 从常量列表中移除func_get_arg和func_get_args的不支持标记
- 在FuncCallOptimizer中实现func_get_arg、func_get_args和func_num_args的代码生成
- 添加详细的测试用例验证func_get_arg和func_get_args的功能
- 实现可变参数函数中对这些内置函数的正确处理
|
5 months ago |
韩天峰
|
898cbe2553
|
feat(php): 支持 func_num_args 函数优化
- 从 UNSUPPORTED_FUNCTIONS 列表中移除 func_num_args
- 添加 func_num_args 函数的运行时测试用例
- 实现 func_num_args 函数调用优化逻辑
- 支持通过 argInfoList 计算函数参数数量
- 添加对可变参数函数的支持
|
5 months ago |