Php 在使用composer安装Symfony后,未在Symfony中调用类

Php 在使用composer安装Symfony后,未在Symfony中调用类,php,composer-php,autoload,Php,Composer Php,Autoload,我有以下目录结构: symfonyproject/src/mybundle/composer.json 在这个捆绑包中,我做了一个: composer require sabre/xml 它安装得很好,就像其他安装的打包软件一样,但是它不会加载 use Sabre; ... $writer = new Sabre\Xml\Writer(); 这给了我一个错误: 试图从命名空间“Sabre\Xml”加载类“Writer”。是吗 忘记另一个名称空间的“use”语句 我已检查:symfony

我有以下目录结构:

symfonyproject/src/mybundle/composer.json
在这个捆绑包中,我做了一个:

composer require sabre/xml
它安装得很好,就像其他安装的打包软件一样,但是它不会加载

use Sabre;

...

$writer = new Sabre\Xml\Writer();
这给了我一个错误:

试图从命名空间“Sabre\Xml”加载类“Writer”。是吗 忘记另一个名称空间的“use”语句

我已检查:
symfonyproject/src/mybundle/vendor/composer/autolode\u psr4

参数如下:

'Sabre\\Xml\\' => array($vendorDir . '/sabre/xml/lib'),
'Sabre\\Uri\\' => array($vendorDir . '/sabre/uri/lib'),

我不确定我在这里做错了什么。其他软件包也可以工作。有什么帮助吗?

您是否需要
供应商/autoload.php
代码中的任何地方?我已经尝试安装了
sabre/xml
软件包,您的代码片段工作正常(除了警告:
使用非复合名称“sabre”的use语句无效
)@EdiModrić在我添加以下内容后可以正常工作:include(“/var/www/html/myproject/src/mybundel/vendor/autoload.php”);但是,对于我的控制器,其他供应商的工作很好,不需要包括这一点。。。奇怪。为什么你要在
symfonyproject/src/mybundle
中添加此依赖项而不是在项目根目录中?@prgrm如果这是独立的捆绑包,为什么你不将它作为常规依赖项由composer安装?@prgrm你必须将
sabre\xml
添加到根目录
composer.json
,然后它就会工作,甚至更好,通过Composer安装捆绑包本身。将捆绑包直接放在
src
文件夹中不会在自动加载捆绑包依赖项中安装或注册。