INDEX
vphp
vphp 是这个技术栈的底层语言桥。
如果 vslim 是框架层,vhttpd 是运行时层,那么 vphp 负责回答的是:
- V 代码怎么导出成 PHP class / function / enum / interface
- V 代码怎么调用 PHP / Zend 世界里的函数、类、对象、属性、常量
- 两边对象、
ZVal、所有权、生命周期怎么桥接
一句话定义:
vphp= Zend Binding for Vlang
它解决什么问题
vphp 不是普通 PHP 扩展脚手架。
它的目标更接近:
- 让 V 成为 PHP 的实现语言之一
- 让 V 类型能导出到 PHP
- 让 V 运行时能安全调用 Zend userland / internal symbols
- 让上层框架和运行时可以直接复用这套桥接能力
所以它既有:
V -> PHPinterop- 也有
V -> Zend export
Core Areas
1. PHP Interop
这是 vphp 最基础的一层。
核心对象是:
ZVal
V 侧通过 ZVal 完成:
- 调 PHP 函数
- 构造 PHP 对象
- 调实例方法 / 静态方法
- 读写属性 / 静态属性
- 取类常量
- 把结果转回 V 标量或 V 导出对象
更细文档:
2. PHP-facing OOP Export
这层回答“V 代码怎么导出成 PHP 类体系”。
当前重点能力包括:
@[php_class]@[php_trait]@[php_method]@[php_interface]@[php_enum]@[php_abstract]@[php_extends: 'ParentClass']@[php_const: shadow_const]@[php_static: shadow_static]@[php_attr: 'AttributeName(...)']
更细文档:
3. Compiler / Export Pipeline
vphp 不只是运行时 API,也包含一套导出编译链:
- parser
- repr
- builder
- emitter
- export
入口说明:
Current Product Role
在整个 PHP + Vlang 技术栈里,vphp 现在扮演的是:
- 语言桥接层
- Zend 导出层
- 上层
vslim/vhttpd的基础设施层
也就是说:
vphp不直接定义应用模型vphp也不直接定义 runtime- 它负责让上层框架和运行时具备“V 驱动 PHP”的能力
Current Highlights
从当前代码状态看,比较关键的能力有:
- 基于
ZVal的统一 interop 入口 - request-owned / persistent-owned / borrowed 所有权模型
- V 导出 PHP class / trait / interface / enum
- PHP 8 class attribute 导出
- V 导出对象恢复成 typed object pointer
Recommended Reading Order
如果你第一次看 vphp,推荐顺序:
- 先看这页
- 再看 docs/interop.md
- 再看 docs/oop_features.md
- 最后看 compiler/README.md