Просмотрите код ваших контроллеров. Если часто встречаются конструкции типа
$this->Product->recursive = -1;
$hits = $this->Product->find('all',array('conditions'=>'Product.image <> "no_image"','order'=>'Product.hit DESC, Product.added DESC','limit'=>9));
то задумайтесь — а место ли им в контроллере?
В чем идея модели? Предоставлять интерфейс к данным. Т.е. Модель должна вернуть уже готовые к отображению данные, в контроллере — только связь с внешним видом. Весь выше приведенный код стоило бы заменить методом в модели, например getHits($num). Тогда вызов в контроллере упростился бы до:
$hits = $this->Product->getHits(9);
Логично?
Этот принцип называется «толстые модели, худые контроллеры», он рекомендует переносить максимально возможную часть логики (естественно, логики поиска данных) приложения в модель.
Теги: cakephp, модель, совет
Перевод записи Auto-loading vendor files (or any other file) с блога Cakebaker’a.
Если вы используете внешние классы, не относящиеся к CakePHP (т.е. не являющиеся готовыми компонентами, хелперами, и т.д., например - PhpMailer или классы Pear), вам приходится импортировать эти классы вручную с помощью вызова App::import(’Vendor’, ‘ClassName’). Этот вызов работает если ваши классы находятся в папке ‘vendors’. То есть в каждом контроллере, или модели, или любом другом месте где вы хотите использовать внешний класс, вам приходится его сначала импортировать. Это не очень удобно.
Читать дальше “Автоматическая загрузка внешних библиотек”
Теги: cakephp, php, совет
Вольный перевод заметки Felix Geisendörfer Basic CakePHP templating skills.
Документация по CakePHP описывает различные аспекты использования платформы, но в ней не рассматриваются практики создания шаблонов (views). В этой заметке я попробую сформулировать собственные наработки по их удобному составлению. Конечно, у всех разработчиков, постоянно работающих с Кейком уже есть свои стандарты и привычки, но надеюсь для новичков мои советы окажутся полезными.
Читать дальше “Основные навыки создания шаблонов в CakePHP”
Теги: cakephp, совет, Шаблоны