ReflectionClass用法-php

阅读次数: 318

  • A+
所属分类:PHP PHP 建站 语言学习
<?php
/**
 * Created by 大师兄
 * 派系: 神秘剑派
 * 技能: zxc秒杀
 * Date: 2020/6/23
 * Time: 14:07
 * QQ:  997823131
 */
class Jack{
    /**
     * @jack我*
     */
    protected $self_name = __CLASS__;
    /**
     *
     * @type=desc*
     */
    protected $self_desc = "我是Jack的控制器";


    public function __construct()
    {

    }
    /*
     * name=index
     * type=public
     */
    public function index(){
        echo "index方法";
    }
    /*
     * name=show
     * type=public
     * */
    public function show(){
        echo "show方法";
    }
    /*
     * name=get_list
     * type=private
     * */
    private function get_list(){
        return "get_list";
    }
}
$class = new ReflectionClass('Jack');
$properties = $class->getProperties();


foreach ($properties as $property) {
    if ($property->isProtected()) {
//        echo var_export($property->getDocComment(), true);
        $docblock = $property->getDocComment();
        preg_match('/type\=([a-z_]*)/i', $property->getDocComment(), $matches);
        echo $matches[1] . "\n";
    }
}
// Output:
// primary_autoincrement
// varchar
// text


通过遍历所有的 control控制器的类,再通过 public 方法中的注释,来自动生成接口文档。

https://www.php.net/manual/zh/class.reflectionclass.php
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: