wangyu/reflex-core

原生PHP的反射注释模型,composer扩展

0.1.1 2020-05-17 08:07 UTC

This package is auto-updated.

Last update: 2024-04-14 20:02:38 UTC


README

php 核心反射类封装

composer 安装

composer require wangyu/reflex-core

使用方法

首先引入命名空间use WangYu\Reflex

use WangYu\Reflex;

获取对象反射实例

  • 获取类反射实例
$reflex = Reflex($object);
  • 获取类方法反射示例
$reflex = Reflex($object);
$actionReflex = $reflex->setMethod($action);

最后获取对应的方法反射文档数据

如果想获取下面的内容,方法的注释应当这样写

类注释举例:

/**
 * Class Book
 * @route('v1/book')
 * @package app\api\controller\v1
 */
class Book
{
}

获取:

$route = $reflex->get('route',['rule']);

结果:

$route = {
    ['rule' => '/v1/book/']
}

方法注释举例:

/**
 * 查询指定bid的图书
 * @route('v1/book/:bid','get')
 * @param Request $bid
 * @param('bid','bid的图书','require')
 * @return mixed
 */
public function getBook($bid)
{
    $result = BookModel::get($bid);
    return $result;
}

获取:

$route = $actionReflex->get('route',['rule','method']);

结果:

$route = {
    ['rule' => '/v1/book/','method' => 'get']
}

判断某个注解是否存在

方法注释举例:

/**
 * 查询指定bid的图书
 * @route('v1/book/:bid','get')
 * @param Request $bid
 * @param('bid','bid的图书','require')
 * @auth()
 * @return mixed
 */
public function getBook($bid)
{
    $result = BookModel::get($bid);
    return $result;
}

获取:

$route = $actionReflex->isExist('auth');

结果:

结果为true代表存在,为false代表不存在

$route = true;  # 代表存在

联系我们

  • QQ: 354007048
  • Email: china_wangyu@aliyun.com