guuspi17/class-manifest 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

guuspi17/class-manifest

最新稳定版本:1.0.0

Composer 安装命令:

composer require guuspi17/class-manifest

包简介

Class manifest. Retrieves all classes that implement the specified interface.

README 文档

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

统计信息

  • 总下载量: 9
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-07-15