Кирилл Мокевнин @toxicmt
Программист & Предприниматель
Information
- Rating
- 1,397-th
- Location
- Miami Beach, Florida, США
- Date of birth
- Registered
- Activity
Specialization
Fullstack Developer, Chief Technology Officer (CTO)
Lead
Программист & Предприниматель
Площадка maps.yandex.ru/-/CFtIumq (команды по 6-7 человек).
Время начала 10 утра в воскресение.
Предлагаю автору внести это в топик и начать собирать заявки.
Раньше постоянно играл здесь maps.yandex.ru/-/CFtIumq, очень неплохое поле. Мяч есть.
Поеду на машине, поэтому если кто то живет по пути от щелковской до полежаевской могу захватить.
Лучше приезжать в 10 утра
Думаю можно юзать отдельно.
В какой то момент кол-во сущностей и связей в системе становится настолько большим что система перестает умещаться в голове. Не совершить ошибку в такой ситуации практически невозможно.
active record = row gateway (Zend_Db_Table_Row) + бизнес логика. www.design-pattern.ru/patterns/active-record.html
Так что в зенде с active record все в порядке, а вот orm функционала нет и это действительно бывает неудобно. Правда в zf2 нас ждет переход на doctrine2, но это конец 2010 года, если повезет.
в Table_Abstract определен метод selecBy($field, $value), который возвращает такой же select.
А сам класс Db_Table_Select расширен методами fetchAll(), fetchRow(), getPaginator(), count(), max(), random() и т.п.
Пример использования.
$this->view->paginator = $table->selectBy('category', 'name')->getPaginator($page, $per_page);
Такой подход, ИМХО, наиболее гибкий. Фактически мы можем вызывать selectBy столько раз сколько нам нужно, а на выходе получать строку, набор, кол-во, paginator и т.п.
Хотя в контроллерах ничего сложнее selectBy (один вызов) лучше не делать. Для этого нужно писать соотвествующие методы в таблицах и покрывать их тестами.