获取所有可用的类依赖项



如果这是一个新手问题,很抱歉。我只是习惯了PHP的Reflection API和依赖于框架的名称空间。

我有这个代码:

<?php # Script 3.4 - index.php
require_once __DIR__.'/vendor/autoload.php';
use AppApptEncoder;
use AppBloggsApptEncoder;
use AppMegaApptEncoder;
$userDefinedClasses = array_filter(
    get_declared_classes(),
    function($className) {
        return call_user_func(
            array(new ReflectionClass($className), 'isUserDefined')
        );
    }
);
echo('<pre>' . var_dump($userDefinedClasses) . '</pre>');

在脚本的后面,我调用了ApptEncoder、BlogsApptEncode和MegaApptEncader,它们确实起作用了。然而,在这个var_dump中,它们没有显示。它所显示的只是:

/home/vagrant/code/ullman/index.php:20:
array (size=2)
  174 => string 'ComposerAutoloaderInit9447e6ccfd181a47ff4686960bd95f38' (length=54)
  175 => string 'ComposerAutoloadClassLoader' (length=29)

我确信get_declared_classes()就是这样工作的:

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

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

// 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();

相关内容

  • 没有找到相关文章

最新更新