自動登録サービス エラー: ORM エンティティに依存します
P粉872182023
P粉872182023 2023-11-05 20:56:05
0
1
828

私は Symfony 3 アプリケーションを開発しています。 symfony プロファイラーのログには次のことが示されています:

リーリー

ただし、これは単純な ORM Bean です:

リーリー

この問題はどのように解決すればよいでしょうか?本当に ORM エンティティを services.yaml でサービスとして宣言する必要がありますか? 「はい」の場合、何をすべきですか?

更新 実際、私のエンティティはサブディレクトリにあります。質問を変更しました。

私の service.yaml で次のことを試しました:

リーリー

...しかし、効果はありません。

P粉872182023
P粉872182023

全員に返信(1)
P粉281089485

Service-auto 登録の下にエンティティをコンストラクター パラメーターとして使用するクラスがありますか?

ここに問題があります。

この関連クラスが本当にサービスなのか、それとも常に自分でインスタンスを作成する単なる通常のオブジェクトなのかを自問する必要があります。

コンテナを介してサービスとして使用しない場合は、2 つのオプションがあります:

次のようなグローバル パターンを通じてこのクラスを除外できます:

リーリー

または、構成で次のパラメータを設定することもできます:

リーリー

このオプションを使用すると、コンテナーはサービスとして利用できないパラメーターを含むサービス クラスを作成しようとせず、決定的なエラーが発生します。これは sf4 のデフォルト設定です。

このエラーを引き起こす良い例は、コンストラクターでエンティティをペイロードとして受け取るカスタム イベント クラスです:

リーリー

このファイルが特に除外されていない場合、コンテナはそれをサービスとして自動的に登録しようとします。ソリッド ボディが除外されるため、自動配線できません。しかし、3.4 では、この警告をトリガーするフォールバック メカニズムが存在します。 strict_mode がアクティブになると、イベントはサービスとして利用できなくなり、サービスとして使用しようとするとエラーがスローされます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート