Php 获取所有可用的类依赖项

Php 获取所有可用的类依赖项,php,reflection,dependencies,autoloader,Php,Reflection,Dependencies,Autoloader,抱歉,如果这是一个新手问题。我刚刚习惯了PHP的反射API和独立于框架的名称空间 我有以下代码: <?php # Script 3.4 - index.php require_once __DIR__.'/vendor/autoload.php'; use App\ApptEncoder; use App\BloggsApptEncoder; use App\MegaApptEncoder; $userDefinedClasses = array_filter( get_de

抱歉,如果这是一个新手问题。我刚刚习惯了PHP的反射API和独立于框架的名称空间

我有以下代码:

<?php # Script 3.4 - index.php

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

use App\ApptEncoder;
use App\BloggsApptEncoder;
use App\MegaApptEncoder;

$userDefinedClasses = array_filter(
    get_declared_classes(),
    function($className) {
        return call_user_func(
            array(new ReflectionClass($className), 'isUserDefined')
        );
    }

);

echo('<pre>' . var_dump($userDefinedClasses) . '</pre>');
我相信这就是工作原理:

返回当前脚本中已声明类的名称数组

当前脚本只是指当前文件。因此,只要您的类包含在同一个文件中,它们就会由
get\u declared\u classes()
返回,否则您必须实例化一个新对象。例如:

/home/vagrant/code/ullman/index.php:20:
array (size=2)
  174 => string 'ComposerAutoloaderInit9447e6ccfd181a47ff4686960bd95f38' (length=54)
  175 => string 'Composer\Autoload\ClassLoader' (length=29)
// As of PHP 7.0
use App\{ApptEncoder as a, BloggsApptEncoder as b, MegaApptEncoder as c};

$a = new a();
$b = new b();
$c = new c();