自分のアプリケーションにカスタムのSymfonyバンドルをインストールしようとしました。私は成功しvendor
フォルダにcomposer install
でバンドルをインストールしローカルのSymfonyバンドルをロードするときにClassNotFoundExceptionが発生する
.
├── composer.json
├── composer.lock
└── src
└── Namespace
└── CoreBundle
├── Controller ...
├── CoreBundle.php
├── Entity ...
├── Helper ...
├── Repository ...
├── Resources ...
├── Services ...
└── Tests ...
: は、私は、次のフォルダ構造を持つバンドルを作成しました。 sym-linkとしてvendor/namespace/core-bundle
の下にあります(私はローカルにロードしました)。私はAppKernel.php
でnew Namespace\CoreBundle\CoreBundle(),
を追加した後
、これは次のエラーを生成します。
(1/1) ClassNotFoundException
Attempted to load class "CoreBundle" from namespace "Namespace\CoreBundle".
Did you forget a "use" statement for another namespace?
in AppKernel.php (line 25)
SYM-リンクに問題がある場合、私は、vendor
フォルダに手動でフォルダをコピーしようとしましたが、それ同じエラーが発生します。私はdump(ClassMapGenerator::createMap('/path/to/symfony'));
でオートロードされたクラスをチェックアウトして、そこに私の名前空間が見つかりませんでした。私の設定が間違っているのか、フォルダ構造ですか?より多くのコードが必要な場合は、できるだけ早く質問を更新します。
更新:マイバンドルcomposer.json
:
{
"name": "namespace/core-bundle",
"license": "proprietary",
"type": "symfony-bundle",
"autoload": {
"psr-4": {
"Namespace\\CoreBundle\\": "src/Namespace/CoreBundle"
}
},
"require": {
"doctrine/doctrine-bundle": "^1.6",
"doctrine/orm": "^2.5",
"liip/imagine-bundle": "1.9.*",
"php": ">=5.5.9",
"symfony/symfony": "3.3.*"
},
"require-dev": {
},
"extra": {
"branch-alias": {
"dev-master": "development"
}
}
}
あなたは 'あなたのCoreBundlesを投稿することができます作曲家.json'。 – ccKep
私は 'composer.json'を追加しました。 – mgluesenkamp
autoload psr-4の部分で '' Namespace \\ CoreBundle \\ ":" src/"'と言うべきではないですか?編集:nvm - psr-0を考えていた。 'composer dump-autoload -a'を使って手動でオートローダーをダンプした後で動作しますか? – ccKep