1 Star 7 Fork 0

Josin / PHP原生注解

Create your Gitee Account
Explore and code with more than 8 million developers,Free private repositories !:)
Sign up
Clone or Download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

PHP原生注解

特点

  • 原生语法支持注解
  • PHP版本7.1.29
  • 支持类注解、方法注解

安装流程

  • 下载源码
  • 编译安装
./buildconf --force
./configure --prefix=/usr/local/php7129 --disable-all; 根据您的需求安装扩展包 这里未安装任何扩展
make -j && sudo make install
  • 愉快的体验原生注解的魔力

工作流程

PHP --> AST -> 注解 -> __annotations

引擎工作在PHP语法层面,因此执行流程会早于代码阶段,这点需要注意,否则您会遇到一些意想不到的问题.

PHP解析引擎 在解析到 注解 后,会调用魔术方法:__annotations 将当前的注解类名注解参数 传入魔术方法中,以待开发者处理,由于 PHP引擎 层面,解析阶段不进行 ASTOPCODE 编译,因此 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()
    { 
    }
}

Repository Comments ( 7 )

Sign in to post a comment

About

支持原生PHP语法层面的注解模式,在原始的PHP层面增加注解功能 expand collapse
C
MulanPSL-1.0
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
C
1
https://git.oschina.net/josinli/php_native_annotations.git
git@git.oschina.net:josinli/php_native_annotations.git
josinli
php_native_annotations
PHP原生注解
master

Search

101014 b92fc32e 1850385 101014 af024cb7 1850385