grajewsky/annotations

PHP 注释读取器 OOP

v1.2.3 2019-10-13 22:33 UTC

This package is auto-updated.

Last update: 2024-09-29 05:28:26 UTC


README

快速使用

use \Annotations\Annotations;
/**
 * @Sample value=1
 * @SampleTest value=1, test=2
 **/
class EntityTestClass {
    /**
     * @Test
     */
    private $test = 1;
}
$annotations = Annotations::read(EntityTestClass::class);

print_r($annotations->annotations(Annotations::ALL_ANNOTATIONS));

关于结构

声明 $a = Annotations::read(EntityTestClass::class); 返回 Annotations 类,您可以调用 $a->annotations($accessor) 方法,其中参数是字符串键,值是

  • 传递常量 Annotations::ALL_ANNOTATIONS - 所有注释(类和属性/方法)的结果是 Array
  • 传递常量 Annotations::CLASS_ANNOTATIONS - 访问器返回 Array - 类的注释
  • 传递属性名或方法以返回注释

输出

Array
(
    [class] => Array
        (
            [Sample] => Annotations\Domains\Annotation Object
                (
                    [fields:Annotations\Domains\Annotation:private] => Array
                        (
                            [value] => 1
                        )

                    [name:Annotations\Domains\Annotation:private] => Sample
                )

            [SampleTest] => Annotations\Domains\Annotation Object
                (
                    [fields:Annotations\Domains\Annotation:private] => Array
                        (
                            [value] => 1
                            [test] => 2
                        )

                    [name:Annotations\Domains\Annotation:private] => SampleTest
                )

        )

    [test] => Array
        (
            [ORM] => Annotations\Domains\Annotation Object
                (
                    [fields:Annotations\Domains\Annotation:private] => Array
                        (
                            [table] => entity
                        )

                    [name:Annotations\Domains\Annotation:private] => ORM
                )

            [Test] => Annotations\Domains\Annotation Object
                (
                    [fields:Annotations\Domains\Annotation:private] => Array
                        (
                        )

                    [name:Annotations\Domains\Annotation:private] => Test
                )

        )

)