guuspi17 / class-manifest
类清单。检索实现指定接口的所有类。
1.0.0
2024-07-15 11:20 UTC
Requires
- php: >=7.4
- nikic/php-parser: ^5.1
- psr/simple-cache: ^1.0
Requires (Dev)
- phpunit/phpunit: 9.0
- squizlabs/php_codesniffer: ^3.5
This package is auto-updated.
Last update: 2024-09-15 12:35:16 UTC
README
描述
该库允许获取指定目录中所有类/接口的列表,并具备进一步过滤和缓存保存的功能。
主要用途 - 获取实现指定接口的所有类。
安装
composer require guuspi17/class-manifest
功能
- 在指定目录中查找类和接口;
- 查找扩展指定类(extends)的类;
- 查找扩展指定接口(extends)的接口;
- 查找实现指定接口(implements)的类;
- 按抽象类进行过滤;
- 将数据保存到缓存中(Psr/CacheInterface 接口)。
测试
composer test
PHPCS
composer cs
基本用法
$classManifest = new \Guuspi17\ClassManifest\ClassManifest(); $classManifest->setDirForSearch(['/app/phpFiles']); // указываем директории, в которых будет происходить поиск *.php файлов. $classManifest->setCache($fileCache); // Опционально, где $fileCache - объект кеша, реализующий Psr/CacheInterface. $classManifest->init(); // Вывести классы, которые реализуют интерфейс NotificationInterface::class. var_dump($classManifest->getInterfaceImplementors(NotificationInterface::class)); // Вывести классы, которые реализуют интерфейс NotificationInterface::class, исключая абстрактные классы. var_dump($classManifest->getInterfaceImplementors( NotificationInterface::class, [\Guuspi17\ClassManifest\Filters\WithoutAbstractClassFilter::getCode() => true] ));