からクラスをロードしようとしましたが、私は2つのバンドルを持っています。 私の最初のバンドル(Bundle1)はメインバンドルであり、2番目のバンドル(Bundle2)はいくつかのサービスを格納するために使用されます。ここでバンドルサービス - 私のsymfonyのプロジェクトでは、名前空間
は私service.yml(Bundle2)です:
services:
sc_ezpublish_helpers.generic_find:
class: SC\EzPublishHelpersBundle\Helper\GenericFindHelper
そしてBundle1に私はこのように私のサービスを呼び出して使用します。私はこのエラーを持っているキャッシュをクリアした後
$findHelper = $this->get('sc_ezpublish_helpers.generic_find');
:
は、名前空間 "SC \ EzPublishHelpersBundle \ヘルパー" からクラス "GenericFindHelper" をロードしようとしました。 別の名前空間に「使用」ステートメントを忘れましたか?
スタックトレース
アプリ/キャッシュには/ dev/appDevDebugProjectContainer.phpラインで20582 -
*/
protected function getScEzpublishHelpers_GenericFindService()
{
return $this->services['sc_ezpublish_helpers.generic_find'] = new \SC\EzPublishHelpersBundle\Helper\GenericFindHelper($this->get('ezpublish.signalslot.repository'), $this->get('ezpublish.config.resolver.core'));
}
/**
ここcomposer.json
"autoload": {
"psr-4": {
"": "src/"
},
"classmap": [ "app/AppKernel.php", "app/AppCache.php" ]
},
の私のautoloadですそしてここにBundle2の構造があります
src/
├── SC
│ └── EzPublishHelpersBundle
│ ├── DependencyInjection
│ │ ├── Configuration.php
│ │ └── SCEzPublishHelpersExtension.php
│ ├── Helpers
│ │ └── GenericFindHelper.php
│ ├── Resources
│ │ └── config
│ │ └── services.yml
│ └── SCEzPublishHelpersBundle.php
あなたのアイデアを持っていますか?私は何かを忘れましたか?
ありがとうございます。
オートロードに関する問題のようです。フォルダ構造が名前空間と一致するかどうかチェックして、composer.jsonのautoloadセクションをここに追加してください。 – dbrumann
私はバンドルの名前を変更しました。しかし、私はどこでも検索して、何か忘れてしまったのを見つけられません...そして、自分のメッセージを私のオートロードで更新しました – ReaperSoon
その場合は、フォルダ構造を表示してください。ファイルには、私は私のBundle2構造を追加したのsrc/SC/EzPublishHelpersBundle /ヘルパー/ GenericHelper.php' – dbrumann