alks / metadata
为 PHP 类提供元数据生成功能
v1.1.1
2022-09-26 10:18 UTC
Requires
- php: ^7.4
- doctrine/annotations: ^1.6
- psr/simple-cache: ^1.0
Requires (Dev)
- mikey179/vfsstream: ^1.6
- phpunit/phpunit: ^8.5.2
This package is not auto-updated.
Last update: 2024-09-23 19:18:22 UTC
README
使用元数据驱动程序集合为 PHP 类及其成员提供元数据
安装
composer require alks/metadata
使用方法
该库包含 3 个元数据驱动程序的实现。
- 反射 元数据驱动程序使用 PHP 反射 API 收集数据
- 文档注释 元数据驱动程序解析 PHPDoc 文档块
- 注释 元数据驱动程序解析 Doctrine Annotations
基本上,每个驱动程序都扩展了它上面的一个(文档注释驱动程序也将使用反射 API)。为了使用库,请生成一个默认的 MetadataDriver 实例并注册要使用的驱动程序(和缓存)
<?php require_once 'vendor/autoload.php'; $driver = new \Alks\Metadata\MetadataDriver(); $driver->register(new \Alks\Metadata\Driver\DocCommentDriver());
如果您想充分利用库,只需调用 enableAnnotations 方法。这将注册 Annoation 元数据驱动程序,该程序利用所有已安装的驱动程序的行为(请记住在驱动程序注册表中注册自动加载器)
<?php require_once 'vendor/autoload.php'; $driver = new \Alks\Metadata\MetadataDriver(); $driver->enableAnnotations(__DIR__.'/var');//extra parameter to cache the doctrine annotation separately
无论如何,一旦您设置了驱动程序,就可以这样获取元数据
<?php class ThisIsTheTargetClass {} // Composer and stuff.. $driver = new \Alks\Metadata\MetadataDriver(); // Register (or enable) all drivers.. /** @var \Alks\Metadata\Metadata\ClassMetadata $metadata */ $metadata = $driver->getClassMetadata(new ReflectionClass(ThisIsTheTargetClass::class));