mintware-de / v8world
ext-v8js php 扩展的包装器。
v1.0.0
2022-11-27 16:25 UTC
Requires
- php: ^8.1
- ext-v8js: ^2.1.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.13
- phpstan/phpstan: ^1.9
- phpunit/phpunit: ^9.5
README
v8js
扩展的包装器。
为什么
没有 V8 World
有了 V8 World
*: 对象的真实实例仍然是 V8Object,但类型提示将帮助您减少可能的错误。
如何?
- 包装器接受
\V8Js
实例 + 一个$initialState
1 类。 - phpdoc 通知您的 IDE,包装器是
\V8Js&InitialState
的实例。 - 您的 IDE 提供自动完成功能,您的静态分析器应能检测到常见的类型问题。
示例
查看 _docs/example.md。
重要提示
此包仅是“子弹孔的绷带”。
- 由于
V8World::modify()
不会创建新的V8Js
对象实例,旧的V8World
也会受到影响- IDE 不会为旧的
V8World
对象提供自动完成,但会为新对象提供。
- IDE 不会为旧的
- 请记住,更改存根不会影响底层 JS 代码 - 反之亦然。
- 如果您正在处理对象和函数,请不要相信存根。.
- 如果方法返回一个对象或属性包含一个对象实例,V8Js 总是返回
\V8Object
- 如果方法返回一个函数或属性包含一个函数实例,V8Js 总是返回
\V8Function
- 如果方法返回一个对象或属性包含一个对象实例,V8Js 总是返回