1
コレクションの履歴はMagento 2にありますか?
現在Magento 2(2.1.2)にある多くのコードは、Magento 1から多かれ少なかれ移植されており、将来、多くのコードが同等のものに置き換えられることを知っています。この点で、Magento 2のコレクションの未来はどうなっているのでしょうか。 説明させてください: Magento 1: Magento 1では、次のようなコレクションを取得するために使用されます。 $products = Mage::getModel('catalog/product')->getCollection(); その後、フィルターやその他の操作をコレクションに適用できます。 $products->addAttributeToFilter('price', ['gteq' => 10]); $products->addFieldToFilter('created_at', ['lt' => '2016-10-10']); $products->setPageSize(10); // ... etc ... そして最後になりましたが、コレクションはモデルを返します。 foreach ($products as $product) { echo get_class($product); // Mage_Catalog_Model_Product } Magento 2: Magentoは抽象化の多くの新しいレイヤーを追加し、より強固な作業方法を実装します。つまり、エンティティのリストが必要な場合は、リポジトリから要求します。 $productResults = $this->productRepository->getList($searchCriteria); 私たちは、フィルタを適用したい場合は、私たちはの組み合わせを使用しSearchCriteriaBuilder、FilterGroupBuilder、FilterBuilderとSortOrderBuilder: $this->searchCriteriaBuilder->addSortOrder( $this->sortOrderBuilder ->setField('created_at') ->setAscendingDirection() ->create() ); …