0

CoreBundle、ApiMobileBundle、ApiPartnerBundle、WebsiteOneBundle、WebsiteTwoBundle、Backoffice1Bundle、Backoffice2Bundle、SearchBundle、UserBundle、LogBundle などの複数のバンドルで構成される複雑な構造の SF2 アプリケーションがあるとします。

これまでは、アプリケーションが 1 つの固有の GIT リポジトリでバージョン管理されていたため、すべてがうまくいきました。しかし今日は、メイン アプリケーションのバンドルの一部を利用できる別のアプリケーションを作成したいと考えています。結果のアプリケーションは同じサーバーにデプロイされないことに注意してください。

簡単に言うと、複数の SF2 アプリケーション内で複数のバンドルを共有したいと考えています。あなたの推奨事項は何ですか?

編集

私が一緒に働いている開発者の 1 人が、それは純粋な異端であり、SF2 の哲学 (アプリケーションのスケルトン、ベンダー管理、構成ファイルなどに関して) ではないと言っているため、この質問をしています。彼は、最善のアプローチはすべてを同じアプリケーションに保持することであり、不要なソースをデプロイすることは問題ではないと主張しています...

4

2 に答える 2

2

あなたの最善の策は、プロジェクトからバンドルを抽出し、それらを独自の git リポジトリに保存することです。

次に、composer.jsonファイルで、それらを依存関係として両方のプロジェクトに追加します。

もちろん、それはバンドルがアプリケーションから分離されているかどうかにも依存しますが、それは設計上の要因であり、まったく別の問題です。

それが役立つことを願っています。

于 2013-10-18T09:41:16.837 に答える
1

バンドル間で関連する Doctrine エンティティがある場合、問題が発生する可能性があります。エンティティが別の未使用のバンドルに関連しているバンドルを使用することにした場合、ここで説明されている Doctrine で問題が発生します。そのため、エンティティ関係と ResolveTargetEntityListener のインターフェイスを使用することをお勧めします。(つまり、Doctrine を使用している場合です。)

欠落しているエンティティの問題に対する非常に簡単な解決策があると思います。これを前のリンクに投稿する予定です。これを実装する時間ができたら、最初にテストして投稿します。

アイデアは、基本的にすべてのバンドルを可能な限りスタンドアロンのままにしておくことです。複数のバンドルで共有する場合や、プロジェクト全体が機能するために最も重要な場合を除き、コア バンドルには何も保持しないでください。しかし、私がこれまでに見つけた最大の問題は、それらのくそったれなエンティティです。

于 2013-10-18T09:42:55.817 に答える