我正在开发一个使用 Monolog 的项目,该项目需要 Psr/log。当我通过自动加载使用 Monolog 时,它会抱怨缺少 Psr\Log\LoggerInterface。于是我查看了composer生成的autoload_namespaces.php,找不到Psr被注册了。
这是我的 vendor/autoload_namespaces.php 的内容
return array(
'Symfony\\Component\\Process' => $vendorDir . '/symfony/process/',
'Monolog' => $vendorDir . '/monolog/monolog/src/',
'Imagine' => $vendorDir . '/imagine/Imagine/lib/',
'Gedmo' => $vendorDir . '/gedmo/doctrine-extensions/lib/',
'Gaufrette' => $vendorDir . '/knplabs/gaufrette/src/',
'Evenement' => $vendorDir . '/evenement/evenement/src',
'Doctrine\\ORM' => $vendorDir . '/doctrine/orm/lib/',
'Doctrine\\DBAL' => $vendorDir . '/doctrine/dbal/lib/',
'Doctrine\\Common' => $vendorDir . '/doctrine/common/lib/',
'Assetic' => $vendorDir . '/kriswallsmith/assetic/src/',
'Analog' => $vendorDir . '/analog/analog/lib/',
);
composer 是否应该为所有在 composer.json 文件中定义了 {autoload} 的项目注册名称空间?(我检查了 Monolog 和 Psr/Log,它们都定义了 {autoload}。)
还是我对作曲家有错误的想法?