Try the Demo

Magento Forum

   
Документация по Varien
 
ELSE
Member
 
Avatar
Total Posts:  47
Joined:  2008-06-12
Kiev, Ukraine
 

Есть ли возможность Выложить Документацию по Varien???
(разбирать на запчасти все классы неохота)
В первую очередь интересует работа Collection прикрученная к определенной модели (в MVC).
Метод подтягивания в коллекцию данних из других таблиц, посредством связей.

ZF документация конечно спасает, но каждый программист хочет знать, написано ли это до него?

Нормальная документация даже на английском устроит

 Signature 

___________________________
Expert Consulting Group at Magento inc.
Skype: kir.morozov
I like performance-related issues.

 
Magento Community Magento Community
Magento Community
Magento Community
 
Anton Makarenko
Magento Team
 
Avatar
Total Posts:  184
Joined:  2008-05-13
Los Angeles, CA
 

Если не вдаваться в подробности, то документации нет smile

Коллекция Varien_Data_Collection - это объект-итератор, а также ресурс-модель. С ним можно обращаться почти как с массивом, в частности можно посчитать количество элементов функцией count() или обойти в цикле foreach. В классе предусмотрены прочие методы для обработки данных - к примеру, разбиение набора данных на страницы, установка фильтров, трансформация в ассоциативный массив и т.д.

Данные в коллекцию могут поступать разными способами. Например, прочитать несколько строк из БД или прочитать содержимое папки - получить список файлов.

Varien_Data_Collection_Db, наследующая Varien_Data_Collection - как раз способна загружать данные из БД. У нее есть атрибут _select - это объект Zend_Db_Select.
Таким образом, чтобы прочитать что-то из БД, необходимо создать объект коллекции, вызвать у него объект select и составить запрос, как описано в документации Zend Framework.

Какой смысл в коллекции, если я могу тупо составить запрос, скормить его открытому соединению и получить массив данных?
Я вижу несколько причин:
1) коллекцию можно отнаследовать и понаписывать кучу готовых методов, которые будут повторно использоваться в разных местах. Это и происходит в Мадженто повсеместно.
2) по той же причине, у коллекции будет стандартный интерфейс, который тоже можно использовать в разных местах и ни о чем не задумываться
3) самое интересное. Varien_Data_Collection_Db не будет делать запрос к БД до тех пор, пока не будет вызван метод load(). Этот метод автоматически (1 раз) вызывается при вызове count() или при обходе в цикле foreach. Таким образом, данные подгружаются только непосредственно когда нам надо.

 Signature 

Magento Tech PM
--
To avoid trouble, don’t tamper with core code. Write customizations!
Community-driven User Guide
Feel free to send me PM with links to really interesting or problematic forum posts.

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
    Back to top