我正在開發一個使用Monolog的項目,它需要Psr/log。 當我通過autoload使用Monolog時,它會抱怨丟失Psr \ Log \ LoggerInterface。 因此,我查看作曲家生成的autoload_namespaces.php,我找不到Psr被註冊。作曲家自動加載命名空間缺失?
這裏是我的供應商/ 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.json文件中定義{}自動加載所有項目註冊命名空間? (我同時檢查了Monolog和Psr/Log,它們都有{autoload}的定義。)
或者我對作曲家有錯誤的想法?
我在monolog的composer.json文件中看到以下內容。還是我解釋錯了? 「需要」:{ 「PHP」: 「> = 5.3.0」, 「PSR /登錄」: 「〜1.0」 }, https://github.com/Seldaek/monolog/blob/ master/composer.json – Cat
有一段時間沒有跟蹤monolog/monolog。你是對的。它應該自動設置autoload_namespaces.php。我剛剛更新了我的答案。 –