Magento - Когда использовать Mage :: getResourceModel - PullRequest
5 голосов
/ 12 ноября 2011

В настоящее время я изучаю Magento и, в частности, как работают модели и ORM.

Насколько я могу судить, есть Модели (которые являются действительными сущностями), Модели ресурсов (которые связаны непосредственно садаптер базы данных) и коллекции (которые являются контейнерами для хранения коллекций моделей).

Почему тогда существует тонна кода и примеров, которые используют Mage::getResourceModel() вместо просто Mage::getModel() - особенно при захватеколлекция то есть Mage::getResourceModel('catalog/product_collection').

Единственная причина, которую я вижу, состоит в том, что Mage::getModel() в какой-то момент придется пройти через модель ресурсов, поэтому может быть более эффективным перейти непосредственно к модели ресурсов.Но разве это не плохая практика?

Ответы [ 2 ]

6 голосов
/ 12 ноября 2011

Насколько я знаю, все коллекции в Magento являются моделями ресурсов. Они создаются Mage::getResourceModel() или Mage::getModel()->getCollection(). Неважно, какую функцию вы используете; последний просто называет первый. Команда Magento просто решила сделать коллекции частью ресурса, возможно потому, что коллекции должны часто запрашивать базу данных. Обычно вам не придется звонить Mage::getResourceModel() для чего-либо еще, кроме коллекций.

0 голосов
/ 07 июля 2016

Mage :: getResourceModel ()

Насколько я знаю, все коллекции в Magento являются моделями ресурсов. Они созданы

Mage :: getResourceModel ()

или

Mage :: getModel () -> getCollection ()

Не имеет значения, какую функцию вы используете; последний просто называет первый. Команда Magento просто решила сделать коллекции частью ресурса, возможно потому, что коллекции должны часто запрашивать базу данных. Обычно вам не нужно вызывать Mage :: getResourceModel () для чего-то еще, кроме коллекций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...