vahidalvandi/class-finder

一个可以提供特定命名空间中类列表的库

0.4.6 2022-10-14 07:30 UTC

This package is auto-updated.

Last update: 2024-09-14 11:46:54 UTC


README

https://gitlab.com/hpierce1102/ClassFinder

一个用于识别特定命名空间中类的简单实用工具。

此包是Stack Overflow上一个答案的改进实现,并提供了一些额外的功能,而无需更多的配置。

要求

  • 应用程序使用Composer。
  • 类可以用Composer自动加载。
  • PHP >= 5.3.0

安装

通过Composer要求来安装。

composer require vahidalvandi/class-finder

目前不支持其他安装方法。

支持的自动加载方法

^ 试验性。

* 计划。

** 未计划。如果需要此功能,请提交问题。

示例

标准模式

<?php

require_once __DIR__ . '/vendor/autoload.php';

$classes = ClassFinder::getClassesInNamespace('TestApp1\Foo');

/**
 * array(
 *   'TestApp1\Foo\Bar',
 *   'TestApp1\Foo\Baz',
 *   'TestApp1\Foo\Foo'
 * )
 */
var_dump($classes);

递归模式 (在v0.3-beta中)

<?php

require_once __DIR__ . '/vendor/autoload.php';

$classes = ClassFinder::getClassesInNamespace('TestApp1\Foo', ClassFinder::RECURSIVE_MODE);

/**
 * array(
 *   'TestApp1\Foo\Bar',
 *   'TestApp1\Foo\Baz',
 *   'TestApp1\Foo\Foo',
 *   'TestApp1\Foo\Box\Bar',
 *   'TestApp1\Foo\Box\Baz',
 *   'TestApp1\Foo\Box\Foo',
 *   'TestApp1\Foo\Box\Lon\Bar',
 *   'TestApp1\Foo\Box\Lon\Baz',
 *   'TestApp1\Foo\Box\Lon\Foo',
 * )
 */
var_dump($classes);

文档

变更日志

异常:

内部

未来工作

警告:在1.0.0之前,预期错误修复将不会回滚到旧版本。在不兼容的小版本0.X.Y中可能会引入不兼容的更改,其中X发生变化。

  • psr0支持

  • 额外功能

各种想法

  • ClassFinder::getClassesInNamespace('TestApp1\Foo', ClassFinder::RECURSIVE_MODE). 提供多层命名空间的类。 (包含在v0.3-beta中)

  • ClassFinder::getClassesImplementingInterface('TestApp1\Foo', 'TestApp1\FooInterface', ClassFinder::RECURSIVE_MODE). 过滤仅实现特定命名空间的类。

  • ClassFinder::debugRenderReport('TestApp1\Foo\Baz') 解决由于命名空间中存在错误、目录缺失等导致的“找不到类”错误的指导。将打印HTML报告。不适用于生产使用,但用于调试。