首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过autoload.php使用Composer安装的类?

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

Stack Overflow用户
提问于 2018-07-31 20:12:46
回答 1查看 401关注 0票数 0

你可能会发现这个问题有点奇怪,但我读了几篇文章,我仍然不清楚如何让它工作。我有一个安装了composer的服务器,我让它通过request命令请求DomCrawler,它成功地安装了,我有供应商\symfony目录和文件autoload.php,我把它们包含在我的脚本中。它返回Composer\Autoload\ClassLoader的对象,该对象似乎有类

代码语言:javascript
复制
[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();在我的例子中,似乎需要一些额外的命令来包含这些类到代码中,我不清楚我必须使用哪一个?或者如何将这些类包含到我的代码中并使用它们...

代码语言:javascript
复制
$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带来的类中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-31 20:42:16

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

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

代码语言:javascript
复制
$loader = require '../../composer/vendor/autoload.php';

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

$classes = get_declared_classes();

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

die();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51613133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档