alks/metadata

为 PHP 类提供元数据生成功能

v1.1.1 2022-09-26 10:18 UTC

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));