gnugat / nomo-spaco
显示项目的声明完全限定类名
v0.4.3
2018-07-20 12:50 UTC
Requires
- php: >=5.3
Requires (Dev)
- phpspec/phpspec: ~2.0
README
在一个项目中查找可用的完全限定类名 (fqcn)。
注意:这是一个原型,工作仍在进行中。
注意:完全限定类名 (fqcn) 是包含其完整命名空间的类名(例如
Symfony\Component\HttpFoundation\Request
)。
安装
使用 Composer 在您的项目中安装此库
composer require "gnugat/nomo-spaco:~0.4"
功能
在路径中查找
为了查找PHP项目的所有可用的完全限定类名,您需要提供其根路径
<?php require __DIR__.'/vendor/autoload.php'; $fqcnRepository = \test\Gnugat\NomoSpaco\make_fqcn_repository(); $allFqcns = $fqcnRepository->findIn(__DIR__);
注意:`make_fqcn_repository` 函数仅用于演示目的。请使用合适的依赖注入容器。
在路径中查找类名
为了查找给定类的所有可能的完全限定类名,您需要提供项目根路径和类名
<?php require __DIR__.'/vendor/autoload.php'; $fqcnRepository = \test\Gnugat\NomoSpaco\make_fqcn_repository(); $possibleFqcns = $fqcnRepository->findInFor(__DIR__, 'Classname');
这是如何工作的?
如今,PHP项目由 Composer 驱动,这是一个包管理器,负责安装和自动加载。这破坏了原生的函数,如 get_declared_classes。
Nomo Spaco 尝试以传统的方式解决这个问题
- 在项目中找到所有PHP文件
- 对于每个文件,使用PHP令牌查找命名空间
- 对于每个文件,使用PHP令牌查找类名
演示
您可以使用以下方法显示项目的所有完全限定类名的列表
php ./test/findAll.php <projectRoot>
您可以使用以下方法显示项目类的所有完全限定类名的列表
php ./test/findOne.php <projectRoot> <classname>