韩天峰
|
215c077291
|
refactor(php): 优化类名解析逻辑并添加objval函数支持
- 提取类名参数解析逻辑到独立的resolveClassNameArg方法
- 简化toObject方法中的类名解析实现
- 添加对objval函数调用的类名解析支持
- 在polyfills中定义objval函数以支持新的解析逻辑
|
3 months ago |
韩天峰
|
26a538680f
|
refactor(php): 将 stream_cast 函数替换为 toStream 方法
- 移除 stream_cast 全局函数实现
- 将 stream_cast($stream) 调用转换为 $stream->toStream() 方法调用
- 更新编译器中的流类型识别逻辑,移除对 stream_cast 的特殊处理
- 修改标准容器解析器中的 unsafePtr 为 boxExpr 属性
- 更新相关测试文件中的调用方式和断言
- 替换不安全指针转换为标准容器转换方法
|
3 months ago |
韩天峰
|
3f9c76df5d
|
refactor(compiler): 替换 std::unsafe_cast 为对象方法调用并优化类型转换
- 将测试文件中的 std::unsafe_cast 调用替换为对应的 toStd* 方法
- 移除 std::unsafe_cast 函数实现,改为使用 $source->toStdMap 等方法
- 更新错误消息输出,移除函数名前缀
- 添加 TO_METHOD_TYPE_MAP 常量定义类型转换方法映射
- 修改变量赋值检查逻辑,支持新的 to* 转换方法
- 移除对 objval 函数的支持,统一使用 toObject 方法
- 新增 parseToStdAssign 方法处理标准容器转换分配
- 添加 genToObjectCall 和 genToConvertCall 代码生成方法
- 重构 UniversalMethodCall 类,移除重复的转换方法定义
- 优化类型检测逻辑,支持新的转换方法类型推断
|
3 months ago |
韩天峰
|
a4d28fbe6b
|
refactor(tests): 替换 objval 函数调用为 toObject 方法
- 移除了全局 objval 函数实现
- 将所有测试文件中的 objval($obj, Class::class) 替换为 $obj->toObject(Class::class)
- 更新了 std-vector、std-map、std-unordered-map、std-array 和 type_decl 测试
- 添加了新的 var_convert 链式调用测试用例
- 统一了对象类型转换的调用方式
|
3 months ago |
韩天峰
|
08f90e2df9
|
feat(php): 添加对box类型的支持
- 在CompilerBase中添加TYPE_BOX常量定义
- 将box类型映射到php::Box类型标识符
- 修改类型解析逻辑以支持box伪类型处理
- 更新gen_stub.php中的类型转换和映射逻辑
- 在StdContainerParser中扩展box类型处理
- 添加box类型到类型搜索顺序数组中
- 实现box类型与其他类型的转换逻辑
|
3 months ago |
韩天峰
|
4c3d7ca4c3
|
feat(compiler): 添加对 bigint、bigfloat 和 decimal 类型的支持
- 在 zendTypeMap 中添加了 bigint、bigfloat 和 decimal 类型映射
- 实现了类型名称的大小写不敏感匹配逻辑
- 添加了对 std 类中 bigInt、bigFloat 和 decimal 方法的类型推断
- 支持 native_types、decimal_types 和 bigint_types 的大小写不敏感解析
- 在 polyfills.php 中定义了新的类型常量
- 添加了相关测试用例验证大数运算功能
- 优化了变量类型检测和赋值时的类型处理逻辑
|
3 months ago |
韩天峰
|
6309346c9a
|
feat(core): 通用方法实现,纯静态,零成本抽象
|
3 months ago |
韩天峰
|
79bc9d4e69
|
feat(aot): 添加对UnsafePtr类型和相关函数的支持
- 在ArgInfo类中添加unsafePtr属性
- 添加UnsafePtr类型到编译器类型映射
- 实现std::unsafe_ptr()和std::unsafe_cast()函数的解析和处理逻辑
- 添加对UnsafePtr类型的变量跟踪和验证机制
- 支持通过unsafe_cast进行标准容器的不安全转换
- 添加相应的单元测试验证功能正确性
|
4 months ago |
韩天峰
|
73bf28667d
|
feat(compiler): 添加对标准容器类型的完整支持
- 实现了标准数组维度获取的类型检测和解析功能
- 扩展了类型转换系统以支持字符串、数组和对象类型
- 在polyfills.php中添加了新的类型常量和容器函数定义
- 重构了标准容器解析器以支持复杂的值类型验证
- 实现了标准容器赋值操作中的类型安全检查
- 添加了类值类型的支持和验证机制
- 完善了标准容器的类型信息解析和存储功能
|
4 months ago |
韩天峰
|
22966d0553
|
feat(php): 扩展标准容器支持功能
- 将StdArrayParser重命名为StdContainerParser以支持更多容器类型
- 添加对std::vector、std::map和std::unordered_map的支持
- 新增TYPE_STD_VECTOR、TYPE_STD_MAP和TYPE_STD_UNORDERED_MAP常量定义
- 实现std容器表达式解析和类型检测功能
- 扩展函数上下文中的容器存储结构
- 添加polyfill类以支持复杂类型定义
- 实现容器维度获取、赋值操作和类型转换功能
- 支持容器的偏移设置和键值类型转换功能
|
4 months ago |
韩天峰
|
98ca30764a
|
refactor(polyfills): 移除 php::Var 类型常量
- 删除了 type_any 常量定义
- 清理了相关类型声明代码
|
4 months ago |
韩天峰
|
2b088d71c5
|
feat(php): 添加 std::array 类型支持并优化编译器功能
- 新增 StdArrayParser trait 处理 std::array 类型解析
- 添加 std::array 类型检测和类型转换功能
- 实现 std::array 的维度检查和安全索引访问
- 添加 polyfills.php 文件提供类型定义和数组填充功能
- 更新 C++ 标准从 c++14 到 c++17
- 修复表达式解析中的类型检测逻辑
- 优化编译器的并发编译功能
- 添加数组循环性能测试示例
- 实现 std::array 的多维数组支持
|
4 months ago |
韩天峰
|
c4b7e3022a
|
fix(php): 修复函数use语句解析问题
- 修正useFunctions映射返回值,确保函数名正确拼接
- 修复use语句类型判断逻辑,处理未知类型情况
- 添加any函数polyfill支持
- 新增函数use测试用例验证功能正确性
|
4 months ago |
韩天峰
|
799aa629c0
|
feat(php): 添加 refval 函数支持引用传递功能
- 新增 isRefvalCall 方法检测 refval 函数调用
- 在编译器中添加对 refval 函数的特殊处理逻辑
- 实现 refval 函数调用的参数解析和优化
- 添加 refval 函数的 polyfill 实现
- 在 stub 生成中使用 refval 包装声明字符串
- 添加 refval 函数的测试用例
|
4 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 |