代码拉取完成,页面将自动刷新
./buildconf --force
./configure --prefix=/usr/local/php7129 --disable-all; 根据您的需求安装扩展包 这里未安装任何扩展
make -j && sudo make install
PHP
--> AST
-> 注解
-> __annotations
引擎工作在PHP语法层面,因此执行流程会早于代码阶段,这点需要注意,否则您会遇到一些意想不到的问题.
PHP解析引擎
在解析到 注解
后,会调用魔术方法:__annotations
将当前的注解类名
和 注解参数
传入魔术方法中,以待开发者处理,由于 PHP引擎
层面,解析阶段不进行 AST
转OPCODE
编译,因此 AST
阶段处理注解类名存在一些问题,所以暂时的处理手段就是传入魔术方法进行处理,后续版本会优化好。
@Inject
@Inject()
@Inject(val="Injection")
@Inject(val="Injection", mode="2")
@Inject("A", "B")
@Inject("A", version="2.2.8")
@Inject(min="1.8", "Hello")
注意:注解只支持字符串参数值,不支持其他类型,可以使用单引号或者双引号都可以
假设您安装好了此版本的PHP
<?php
function __annotations($className, $annotations, $mClassName, $mFunctionName)
{
// 第一个参数为注解类名
// 第二个参数为注解的参数
// 第三个参数为注解修饰类的类名
// 第四个参数为注解修饰的的方法名
}
@Inject(val="Hello")
@var
class Test
{
@before()
public function getVersion()
{
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。