synga/inheritance-finder

此包可以查找被扩展、由某个类实现或使用某个特性的类。

1.0.9 2016-05-08 15:35 UTC

This package is auto-updated.

Last update: 2024-09-26 05:00:14 UTC


README

此包可以查找被扩展、实现或使用某个特性的类。它构建一个缓存并使用它来查找所需的文件。

##使用方法

$config = new \Synga\InheritanceFinder\File\FileConfig();
$config->setApplicationRoot(__DIR__);
$config->setCacheDirectory(__DIR__);

$inheritanceFinder = Synga\InheritanceFinder\InheritanceFinderFactory::getInheritanceFinder($config);
$inheritanceFinder->findExtends('SomeNamespace\OtherNamespacePath\Class');

现在它将在你的ApplicationRoot目录中查找所有继承自类SomeNamespace\OtherNamespacePath\Class的类

##可能的选项

  • findClass('完整的命名空间') - 可以在指定目录中定位具有给定命名空间的文件
  • findExtends('完整的命名空间') - 可以在指定目录中定位从给定类继承的多个类
  • findImplements('完整的命名空间') - 可以在指定目录中定位实现或继承给定接口的多个类
  • findTraitUse('完整的命名空间') - 可以在指定目录中定位使用给定特性的多个类
  • findMultiple('类 [字符串或字符串数组]', '接口 [字符串或字符串数组]', '特性 [字符串或字符串数组]') - 可以一次性定位多个类,它使用上述方法。

##致谢

  • 目前此包无法处理一个文件中的多个类。我将在不久的将来尝试修复这个问题。
  • 第一次运行会比较慢,因为它正在索引项目根目录中的所有文件。我在想一种方法来使其更快。我计划使用react php来实现这一点,这样我们就可以使用多个进程。
  • 不要在生产环境中使用此代码(你可以用它来为生产环境构建文件缓存)。性能结果强烈依赖于你的硬件。