私はsymfony 3を使用してWebアプリケーションを開発しています。私はバンドルで私のアプリケーションを分けた。しかし、時には他のバンドルのエンティティが必要です。だから私の質問です - 私はエンティティをいくつかのCommonBundleに置くべきですか、それとも他のバンドルのエンティティを使用するのもいいですか?Symfony。エンティティを配置する場所
答えて
別のバンドルからエンティティをインポート(使用)しても問題ありません。バンドル間で一方向の依存関係が作成されることに注意してください。他のバンドルでも、最初のバンドルからエンティティ(または何か他のもの)もインポートすると、双方向依存関係になります。この場合、バンドルは互いに依存しており、別のバンドルを変更することなくバンドルを削除することはできません。
この場合、共通のバンドルがお手伝いしますとは思いません。私自身もいくつかのプロジェクトでCoreBundleのように作成しましたが、ほとんどの場合はインターフェイスや抽象クラスが含まれていましたが、他のバンドルに依存することはありませんでした。
また、バンドルからビジネスコードを切り離してアプリケーション用にバンドルを作成することもお勧めします。 symfonyをはじめて使うのであれば、そうすることはお勧めできません。
かなりこれ。実際には、設計されたバンドルを他のアプリケーション間で再利用する必要があるかどうかによって異なります。それらのバンドルを可能な限り依存関係のないものにしたい場合は、しかし、OPのバンドルが特定のアプリケーションにしか関係しない場合は、すべてを単一のバンドルに投げ込んだり、バンドル間でエンティティを再利用したりしても問題ありません。 –
我々は次のようにプロジェクト
内の任意のバンドル内のエンティティにアクセスするためのサービスを行うことができます - :
$view = $this->container->get('test_project.list.view');
注意コントローラで、このように、このエンティティにアクセス
services:
test_project.list.view:
class: TestProject\TestBundle\Entity\ProfileSchool
arguments:
- "@service_container"
:
test_project.list.viewには、任意の名前、そのデモだけを指定できます。
希望すると、これが役立ちます。
問題がある場合はお知らせください。
- 1. ビジネスロジックを配置する場所はSymfony 2モデル層ですか?
- 2. アプリケーションにグローバルなエンティティを配置する場所は?
- 3. Symfonyプラグインにベースアクションクラスを配置する場所はどこですか?
- 4. マルチスレッド。 MyLock.acquire()、ロックを配置する場所
- 5. ベストプラクティス:mysqlフィールドを配置する場所
- 6. WPF MahApps.Metro - ResourceDictionariesを配置する場所
- 7. laravelロガークラスを配置する場所
- 8. Database.SetInitializerを配置する場所
- 9. WPF Prism - リソースを配置する場所
- 10. Vistaにグローバルアプリケーションデータを配置する場所
- 11. サービス層を配置する場所
- 12. テンプレートボタンのクリックイベントを配置する場所
- 13. サブページコンポーネントをIonic2に配置する場所
- 14. リソースを配置する場所
- 15. @ Scripts.Renderと@ Styles.Renderを配置する場所
- 16. Sitecore Helixデータソーステンプレートを配置する場所
- 17. MVC - blittingデータを配置する場所
- 18. アンドロイドアプリケーションでデータベーステーブルを配置する場所
- 19. MySQLストアドプロシージャを配置する場所は?
- 20. オニオンアーキテクチャにConnectionStringを配置する場所
- 21. アプリモデルを配置する場所
- 22. JQueryハッシュチェンジイベント - 配置場所
- 23. インフラストラクチャテンプレートの配置場所
- 24. ヘッダー場所+コンテンツ配置
- 25. ClickOnce配置場所Web
- 26. 名前、場所、組織、名前空間のエンティティの再配置のための場所を抽出
- 27. Dropboxの場所にMySQLを再配置
- 28. JSPの場合にlog4j.propertiesファイルを配置する場所
- 29. symfony 3.3でセキュリティをチェックする場所
- 30. SymfonyアプリケーションにLICENSEファイルを置く場所は?
どのような種類のバンドルがありますか?バンドルが非常に小さい場合は、symfonyのベストプラクティスで推奨されているように、1つのAppBundleを作成するほうがよいでしょう。http://symfony.com/doc/current/best_practices/creating-the-project.html#application-bundles –
広範な(そして意見に基づく)質問を投稿する代わりに、開発しなければならないアプリケーションのタイプをより明確に記述する方が良いでしょう。私は、symfonyがどのように動作するのか、結局どのようにバンドルを構造化する(そして使用する)のかを自分で理解するためには、ドキュメントの中でさらに深く理解する必要があると思います。 –