2017-08-02 18 views
0

公式サイト:https://symfony.com/doc/current/bundles.htmlの指示に従ってSymfony3で自動的にバンドルを生成しようとしましたが失敗しました。Symfony3でバンドルを自動生成するには?

私のプロジェクトに\src\TestBundleというディレクトリを作成し、その中にファイルTestBundle.phpを作成しました。クラスTestBundleをバンドルから拡張し、クラス宣言の前にuse Symfony\Component\HttpKernel\Bundle\Bundle;行を追加しました。

新しいバンドル名をAppKernel.phpのバンドルリストに追加しました。私は$ php bin/console generate:bundle --namespace=TestBundleを実行したとき

は最後に、私はこのエラーを取得する:それがなぜ起こるかPHP Fatal error: Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "TestBundle" from namespace "TestBundle".

任意のアイデア?このコマンドを起動した場合

答えて

1

php bin/console generate:bundle --namespace=TestBundle 

symfonyはあなたのためのバンドルを作成し、そのファイルを作成し、AppKernelファイルにそれを追加する必要はありません。

TestBundleに関するすべてのファイルとリファレンスを削除してください。コマンドの起動後、Symfonyがバンドルを作成して登録します。

代わりに、\src\TestBundleというディレクトリを作成する必要があり、その中にファイルTestBundle.phpを手動で作成する必要があります。 AppKernelに登録する必要がある場合。 あなたはcomposer.json

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

autoloadため、この設定を使用して、最終的にあなたのコンソール内のコマンドを起動まだ行っていない場合、そのバンドルをロードするために作曲に指示する必要があります後:

composer dump-autoload 
関連する問題