Alejandro Gervasio の優れた Service Layers シリーズ ( http://www.devshed.com/cp/bio/Alejandro-Gervasio/ ) を読んでいて、彼がhttp: //www.devshed.com/c/a/PHP/PHP-Service-Layers-Handling-Entity-Collections/1/
何故ですか?配列自体を使用して単純な連想配列をシミュレートするクラスを作成するのはなぜですか?
Alejandro Gervasio の優れた Service Layers シリーズ ( http://www.devshed.com/cp/bio/Alejandro-Gervasio/ ) を読んでいて、彼がhttp: //www.devshed.com/c/a/PHP/PHP-Service-Layers-Handling-Entity-Collections/1/
何故ですか?配列自体を使用して単純な連想配列をシミュレートするクラスを作成するのはなぜですか?
私は記事を読んでいませんでしたが、一般的に言えば、なぜ私がそれを行うのかを説明できます。
Doctrine 2で観察したことで答えを完成させることができれば:
Doctrine では、Collection
インターフェースを使用するだけで、それがどのように機能するかは気にしません。インターフェイスは、フィルタリング、ソートなどのメソッドを提供します。
しかし、Doctrine はCollection
namedの実装を提供しますPersistentCollection
。インターフェイスを使用しているため、使用していることさえわかりませんが、この特別なコレクションを使用すると、Doctrine はコレクションをフィルター/検索/ソートするときに、インテリジェントかつ透過的にデータベース クエリを作成できます。また、Doctrine がコレクションのコンテンツ (オブジェクトのリスト) を、アクセスされたとき (遅延ロード) にのみロードできるようになり、パフォーマンスの向上に役立ちます。
これは PHP 配列では不可能であり、データベースから完全にロードしてから操作を実行する必要があります。