2012-02-13 9 views
0

Doctrineの統合を統合するためのいくつかの質問2.2 & Zendフレームワーク。私は同じ問題について議論する多くの質問があることを知っていますが、私はそれについて具体的な質問があります。最大のパフォーマンスを得るためにDoctrine 2.2とZendフレームワークの統合

  1. Doctrineを配置する最適な場所は何ですか?ほとんどのインテグレーション技術はのlibraryフォルダにエンティティを生成しますが、私のアプリケーション内のmodels folderに入れておくとパフォーマンスが向上するかどうかは疑問でした。 インクルードパス全体を検索するのではなく、モデルフォルダを見つけるのが速くなります。

  2. 性能に関して最良の統合方法は何ですか?私はBisnaインテグレーションを使用する予定ですが、より良い統合方法があれば教えてください。

  3. 私はDoctrineのサービス層をどこに追加して、どこに最適な場所にしたいですか?

注:

  • 私は私のプロジェクトのためにZend toolによって生成されるデフォルトのフォルダ構造を使用します。
  • 私はDoctrine 2をダウンロードし、それを自分のライブラリフォルダに追加しました。

Bisnaビデオがproberlyあなたに言ったとして予め

答えて

3

のおかげで、私は通常、自分のライブラリ内だけでなく、私のエンティティを置きます。しかし、アプリケーション固有のコードなので、これは最適な場所ではないことに私は同意します。より良いアプローチはアプリケーション/エンティティのようなものです。私はパフォーマンスのためにmeassurableだとは思わない。

私は多くのBisna統合が好きです。私はそれがZFのためのDoctrine2の最高の統合の1つだと思います。それは小さく、シンプルで清潔です。 Bisnaの統合により、アプリケーションのキャッシングレイヤーを簡単に変更できます。そのアプローチから、パフォーマンスに優れています。しかし、インテグレーションはロケット科学ではないので、他のインテグレーションとのパフォーマンスに違いはありません。

パフォーマンスを向上させるには、いくつかの設定オプションが必要です。プロダクション環境での自動プロキシ生成を無効にし、Doctrine-CLIで作成する必要があります。パフォーマンスを大幅に向上させるAPCまたはMemcacheのアノテーションとDQL-> SQLキャッシュを有効にすることをお勧めします。

Doctrine2ではクエリの有効期間を渡すことでクエリをキャッシュすることができます。デフォルトのキャッシングとしてAPCまたはMemcachingを設定した場合、結果セットはそこに保存されます。

私の答えはあなたに少し助けてくれると思っています。もし何かもっと欲しいのであれば、ちょっと尋ねてください!

+0

よくあるのはリポジトリとサービス層ですか?私はまだ両方に入るべきものを定義するいくつかの問題を抱えています。つまり、サービスレイヤーは実際に自分のビジネスロジック(つまり、自分のモデル)であり、アプリケーションに含める必要があります。彼らの違いは何ですか – Songo

+0

私は、リポジトリとあなたのプロキシをapplication/entities/proxyとappliation/entities/repositoryに配置します。サービス層によって、あなたはどういう意味ですか? –

関連する問題