你可能会觉得这个问题有点奇怪,但我读了几篇文章,仍然不清楚如何让它发挥作用。我有一个安装了composer的服务器,我通过request命令请求DomCrawler,它安装成功了,我有vendor \symfony目录和文件autoload.php,我把它包含在我的脚本中。它返回Composer\Autoload\ClassLoader的对象,该对象似乎具有类
[prefixLengthsPsr4:ComposerAutoloadClassLoader:private] => Array
(
[S] => Array
(
[SymfonyPolyfillMbstring] => 26
[SymfonyPolyfillCtype] => 23
[SymfonyComponentDomCrawler] => 29
)
)
现在如何使用它们?在手册中,它们通常会注册到那个时刻,人们可以简单地创建变量,比如$var = new SymfonyComponentDomCrawler();
。在我的情况下,似乎需要一些额外的命令来包括要编码的类,但我不清楚我必须使用哪一个?或者如何将这些类包含到我的代码中并使用它们。。。
$loader = require '../../composer/vendor/autoload.php';
$classes = get_declared_classes();
if( class_exists( 'ComposerAutoloadClassLoader' ) ){
$methods = get_class_methods( 'ComposerAutoloadClassLoader' );
}
echo '<pre>';
//print_r($loader);
print_r( $classes );
//print_r( $methods );
echo '</pre>';
die();
我没有看和爬行/交响乐课。只有composer类被添加到php带来的类中。
类将在您请求时加载,这就是自动加载的要点。如果您有一个包含数千个类的项目,而特定的请求只使用了其中的100个类,那么将只加载这100个类。它允许您通过跳过加载所有未使用的类来节省服务器资源。
在调用get_declared_classes()
之前尝试使用类——它应该在那里。
$loader = require '../../composer/vendor/autoload.php';
$crawler = new SymfonyComponentDomCrawlerCrawler();
$classes = get_declared_classes();
echo '<pre>';
print_r( $classes );
echo '</pre>';
die();