您可能会发现这个问题有点奇怪,但是我读了几篇文章,但我仍然不清楚如何使它起作用。我有一台安装了作曲器的服务器,我通过请求命令使其请求DomCrawler,它成功安装了它,我有vendor \ symfony目录和文件autoload.php,我将其包含在脚本中。它返回Composer \ Autoload \ ClassLoader的对象,该对象似乎具有类
[prefixLengthsPsr4:Composer\Autoload\ClassLoader:private] => Array
(
[S] => Array
(
[Symfony\Polyfill\Mbstring\] => 26
[Symfony\Polyfill\Ctype\] => 23
[Symfony\Component\DomCrawler\] => 29
)
)
现在如何使用它们?在手册中,它们通常是在那时注册的,在我的情况下,人们可以简单地制作诸如$var = new Symfony\Component\DomCrawler();
之类的变量,似乎需要一些额外的命令才能包含要编码的类,而对于我来说我还不清楚必须采用?或者如何将这些类包含到我的代码中并与之一起使用...
$loader = require '../../composer/vendor/autoload.php';
$classes = get_declared_classes();
if( class_exists( 'Composer\Autoload\ClassLoader' ) ){
$methods = get_class_methods( 'Composer\Autoload\ClassLoader' );
}
echo '<pre>';
//print_r($loader);
print_r( $classes );
//print_r( $methods );
echo '</pre>';
die();
我没有看到爬虫/交响乐课。仅composer类被添加到php带来的类中。
答案 0 :(得分:0)
当您请求类时,它们将被加载-这就是自动加载的重点。如果您的项目中包含数千个类,并且特定请求仅使用其中的100个类,则只会加载这100个类。通过跳过加载所有未使用的类,它可以节省服务器资源。
在调用get_declared_classes()
之前尝试使用类-它应该在那里。
$loader = require '../../composer/vendor/autoload.php';
$crawler = new \Symfony\Component\DomCrawler\Crawler();
$classes = get_declared_classes();
echo '<pre>';
print_r( $classes );
echo '</pre>';
die();