如何通过autoload.php使用Composer安装的类?

如何通过autoload.php使用Composer安装的类?,php,composer-php,Php,Composer Php,你可能会觉得这个问题有点奇怪,但我读了几篇文章,我仍然不清楚如何让它起作用。我有一个安装了composer的服务器,我通过request命令请求DomCrawler,它成功地安装了它,我有vendor\symfony目录和文件autoload.php,我将其包含在我的脚本中。它返回Composer\Autoload\ClassLoader的对象,该对象似乎有类 [prefixLengthsPsr4:Composer\Autoload\ClassLoader:private] => Arra

你可能会觉得这个问题有点奇怪,但我读了几篇文章,我仍然不清楚如何让它起作用。我有一个安装了composer的服务器,我通过request命令请求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=newsymfony\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();
$loader=require'../../composer/vendor/autoload.php';
$classes=获取声明的类();
如果(类_存在('Composer\Autoload\ClassLoader')){
$methods=get_class_方法('Composer\Autoload\ClassLoader');
}
回声';
//打印(加载器);
打印(类);
//打印方法;
回声';
模具();

我没有看到和爬虫/交响乐课程。只有composer类被添加到php带来的类中。

类将在您请求时加载,这就是自动加载的要点。如果您有一个包含数千个类的项目,并且特定的请求只使用了其中的100个,那么将只加载这100个类。它允许您通过跳过加载所有未使用的类来节省服务器资源

在调用
get_declared_classes()
之前尝试使用类-它应该在那里

$loader=require'../../composer/vendor/autoload.php';
$crawler=new\Symfony\Component\domcawler\crawler();
$classes=获取声明的类();
回声';
打印(类);
回声';
模具();

当然,我已经看过了。这就是我请求帮助的原因。我包括$loader=require'../../composer/vendor/autoload.php';文件成功,它只返回Composer\Autoload\classloader如果您认为它对您不起作用,您应该说明它是如何不起作用的。哪些类未加载?您如何使用它以及您的项目结构是什么?@Nick,是的,正如一些人已经说过的,类的名称是
Symfony\Component\domclawler\Crawler
@iainn Yess。。。。多谢各位。类名上确实有个错误。我纠正了它,现在它似乎起作用了。
$loader = require '../../composer/vendor/autoload.php';

$crawler = new \Symfony\Component\DomCrawler\Crawler();

$classes = get_declared_classes();

echo '<pre>';
print_r( $classes );
echo '</pre>';

die();