私はクラス(FOSUserBundle)を拡張しましたが、symfonyエンティティからロジックを分離するベストプラクティスに従い、インスタンス化、オブジェクト操作などを処理する "ロジック"サービスを作成しました。拡張Symfonyエンティティロジックを格納する場所
エンティティ、タイプヒント、サービスのPHPdoc戻りオブジェクトタイプなどをすべて拡張して、すべてスーパークラスを参照し、新しく拡張されたサブクラスエンティティを参照しないときに問題が発生します。今、新しい拡張されたエンティティを処理するための新しいロジック(およびサービス)を作成する必要があります。
拡張クラスごとにこのサービス/エンティティロジックを書き直したくないです(これは悪い習慣と思われます)。作成される拡張エンティティを処理するために拡張できるスーパーサービスクラスを持つことが理想的です。
私の質問は:#1:拡張エンティティを処理するロジッククラス/サービスを作成するためのベストプラクティスは何ですか?
私の質問には次のようなものがあります:#2:symfonyのベストプラクティスを理解したいと自分自身のような人々のために、私はsymfonyのウェブサイトのベストプラクティスが優れた入門書であることを発見しましたが、中級/上級のベストプラクティスについては欠けています。
私はこの1つの答えを見つけることを楽しみにして、私は、拡張エンティティロジックが含まれているサービスクラスを拡張することによってこの問題を解決してきたあなたは
:基本サービスクラスは次のように見えますが
あなたの質問を得る!あなたは何を伸ばしたいのですか?サービスまたはエンティティ?しかし、私が理解する限り、私のアドバイスは、*延長しない*でしょう。インターフェイスと注入を使用してください。 – Yoshi
こんにちは、エンティティを拡張しています。しかし、エンティティが拡張されたときに問題が発生し、サービスコードがエンティティsuperClassを参照するため、エンティティロジックを処理する古いサービスを使用できなくなります。 –
なぜこれは使用できなくなりますか?スーパークラスの型ヒントは、拡張クラスを受け入れます。 https://3v4l.org/pqfKZ – Yoshi