定制 vaened/php-tag-finder 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

vaened/php-tag-finder

最新稳定版本:v1.0.2

Composer 安装命令:

composer require vaened/php-tag-finder

包简介

README 文档

README

Build Status Software License

Library created to simplify the search for PHP classes based on their parent class/interface.

Installation

You can install the library using composer.

composer require vaened/php-tag-finder

Usage

The definition of tag in this library is understood as an interface or abstract class.

With that in mind, to obtain, for example, all the handlers of a system, it would be enough to search for all the PHP classes that implement the Handler interface.

$finder  = new ClassFinder(...);
$classes = $finder->instancesOf(Handler::class);

This will return an associative array, where the key is the physical location of the file on disk and the value is the class it references in the project.

Configuration

The configuration consists of how to create the ClassFinder, for this we must understand 2 concepts, the source where the search will be performed, and the namespace that represents that location.

  • source: the location where you will start looking for tagged classes.
  • namespace: the representation of this location in the project.

Example

Let's suppose that the project is called Ecommerce, where the namespace is also Ecommerce\\.

src
├── App
│ ├── Categories
│ │ └── CreateCategoryHandler.php
│ ├─── Products
│ │ └── CreateProductHandler.php
│ ├── Handler.php

So, to locate only the classes that correspond to the application, in this case you would have to instantiate the ClassFinder to search within the root of the project/App, with its equivalent for the namespace.

$paths  = [$rootProyectPath, 'src', 'App'];
$finder = new ClassFinder(
    implode(DIRECTORY_SEPARATOR, $paths),
    'Ecommerce\\App'
);

License

This library is licensed under the MIT License. For more information, please see the license file.

统计信息

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

GitHub 信息

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

其他信息

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