我嘗試了一段時間通過作曲者導入自己的包,但是我遇到了一些問題。我有以下捆綁:Symfony2 Composer Bundle命名空間
<?php
namespace Platform\Bundle\PollBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class PlatformPollBundle extends Bundle
{
}
束是供應商/平臺/ pollbundle/。
在 「主」 composer.json我definied命名空間用於自動加載:
"autoload": {
"psr-0": {
"": "src/" ,
"Platform\\": "vendor/platform"
}
},
並在composer.json從包我definied:
{
"name" : "platform/pollbundle",
"type": "symfony-bundle",
"extra": {
"servicePath": ""
},
"autoload": {
"psr-0": {
"Platform\\Bundle\\PollBundle": ""
}
},
"target-dir": "pollbundle"
}
在autoload_namespaces中正確的是以下行:
'Platform\\' => array($vendorDir . '/platform'),
但我得到的錯誤:
Fatal error: Class 'Platform\Bundle\PollBundle\PlatformPollBundle' not found in ........Controller.php on line 13
我試圖約100解決方案,但沒有任何工程。如果有人能幫助我,那會很棒。
可能的重複[如何在Symfony2中安裝或集成包](http://stackoverflow.com/questions/7585383/how-to-install-or-integrate-bundles-in-symfony2)< - 它不是管理symfony2包的作曲家,這是symfony。檢查重複的問題 –
首先感謝您的答案,但不爲我工作。我把這個軟件包移動到/ vendor/bundles,並將它添加到composer(相同的命名空間??)autoload中,我嘗試了「$ loader-> registerNamespaces」,但沒有定義該方法 – Zero
忘記了作曲家。捆綁軟件的自動加載由'registerBundles'方法中的AppKernel.php處理。這是一個hacky修復,但也許嘗試在命令行上運行'php app/console generate:bundle',生成一個與你試圖添加的名稱相同的新bundle('PollBundle'),然後覆蓋dir('src/PollBundle')與你試圖添加的那個,看看是否有效 –