2017-07-25 43 views
-1

剛剛我們決定從symfony 2.8升級到3.3,注意到這一點我覺得最好是開始一個新的symfony項目,並且只需將項目的某些部分拉下來,並更改通過此主要版本升級改變的關鍵需要的項目。我已經解決了大部分問題,但是現在我明白了這個意思,我可能會有更多我懷疑的問題。這裏是當前:Symfony從2.8-3.3切換到ClassNotFoundException使用語句缺少名稱空間?

C:\xampp\htdocs\Fresh_Api>php bin/console server:run PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to lo ad class "CommandListener" from namespace "Directive\MultiTenant\MasterBundle\EventListener". Did you forget a "use" statement for another namespace? in C:\xampp\htdocs\Fresh_Api\var\cache\dev\a ppDevDebugProjectContainer.php:580 Stack trace: 
#0 C:\xampp\htdocs\Fresh_Api\vendor\symfony\symfony\src\Symfony\Component\DependencyInjection\Contai ner.php(331): appDevDebugProjectContainer->getAppBundle_CommandListenerService() 
#1 C:\xampp\htdocs\Fresh_Api\var\cache\dev\appDevDebugProjectContainer.php(965): Symfony\Component\D ependencyInjection\Container->get('app_bundle.comm...') 
#2 C:\xampp\htdocs\Fresh_Api\vendor\symfony\symfony\src\Symfony\Component\EventDispatcher\EventDispatcher.php(229): appDevDebugProjectContainer->{closure}() 
#3 C:\xampp\htdocs\Fresh_Api\vendor\symfony\symfony\src\Symfony\Component\EventDispatcher\EventDispatcher.php(61):Symfony\Component\EventDispatcher\EventDispatcher->sortListeners('console.command') 
#4 C:\x in C:\xampp\htdocs\Fresh_Api\var\cache\dev\appDevDebugProjectContainer.php on line 580 

當然,這是我嘗試運行後php bin/console server:run

我試圖刪除我的緩存,刪除我的自動加載的文件,刪除我的供應商檔案,並重新安裝作曲家。我試圖查看是否有任何遺漏。 (我可能錯過了這裏的東西)

它所談論的文件是生成的文件,所以關於它的文件沒有正確注意到該類存在。

這裏了CommandListener

namespace Directive\MultiTenant\MasterBundle\EventListener; 

use Directive\MultiTenant\MasterBundle\Connection\ConnectionWrapper; 
use Directive\MultiTenant\MasterBundle\Entity\Tenant; 
use Directive\MultiTenant\MasterBundle\Repository\TenantRepository; 
use AppBundle\TenantProviderInterface; 
use Doctrine\DBAL\Connection; 
use Doctrine\DBAL\Schema\AbstractSchemaManager; 
use Exception; 
use Symfony\Component\Console\Command\Command; 
use Symfony\Component\Console\Event\ConsoleCommandEvent; 
use Symfony\Component\Console\Input\InputOption; 

的appDevDebugProjectContainer有點大,所以我會等待,看看是否有任何迴應,看看它甚至需要,因爲我敢肯定,這是別的東西所引起它不會產生所需的適當信息。

感謝您的任何輸入。

編輯:這是一個鏈接在這裏注意到它是同樣的問題,但是這個確切的問題已經解決之前所有這一切。這是我的那部分代碼。

"autoload" : { 
    "psr-4": { 
     "AppBundle\\": "src/AppBundle" 
    }, 
    "classmap": [ "app/AppKernel.php", "app/AppCache.php" ] 
}, 

這已經固定了。這裏是我用來解決我當然沒有任何幫助的問題的另一個鏈接。

php bin/console symfony commands give a fatal error

和另一

Symfony 3.3 Getting ClassNotFoundException

+0

編輯添加其他東西我已經嘗試過,其中包括用作「重複」的人有沒有人有更好的主意? –

+0

您發佈的自動加載「修復」是錯誤的。 – Cerad

+0

自動載入的想法並不能解決我的問題,因爲它表示這是爲了解決這個問題而僅僅注意到這個問題。 –

回答

0

所有幸得CERAD答案是可悲的複製,但是我沒有看到需要的東西。自動加載器需要知道它從哪裏拉類,並且必須用symfony現在採用的新方法進行設置。這是我的例子,我的附加代碼使它工作。

"autoload" : { 
    "psr-4": { 
     "AppBundle\\": "src/AppBundle", 
     "BundleName\\": "src/BundleName" 
    }, 
    "classmap": [ "app/AppKernel.php", "app/AppCache.php" ] 
},