gnugat/nomo-spaco

显示项目的声明完全限定类名

安装次数: 148,076

依赖项: 6

建议者: 0

安全性: 0

星标: 25

关注者: 3

分支: 5

开放性问题: 0

类型:项目

v0.4.3 2018-07-20 12:50 UTC

This package is auto-updated.

Last update: 2024-09-05 20:43:13 UTC


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>