Архив рубрики «CakePHP»

Особенности межплагинного взаимодействия

Конечно, вызывать методы классов плагина из другого плагина не очень хорошо. Но, тем не менее. Чтобы впоследствии не было мучительно больно, при объявлении связей между моделями, надо всегда указывать свойство className, причем полностью, т.е. ‘Plugin.MyModel’. Иначе возможны весьма забавные эффекты. Справедливо для версий 1.2 и 1.3. Дальше немного кода.

Опубликовано 07.11.2010 в 14:08 · Автор Сергей · Ссылка · Написать комментарий
Рубрики: CakePHP · Теги: , , , ,

Список всех-всех контроллеров

Понадобилось мне получить список всех контроллеров приложения, включая контроллеры плагинов. Configure::listObjects, увы, такого не умеет. Этот метод выдает только все контроллеры приложения, но без контроллеров плагинов. Пришлось немного адаптировать метод, предложенный Rob Weaver в гуглогруппе CakePHP. На выходе у моего метода получается объединенный список контроллеров. Основные — как отдает метод listObjects, а принадлежащие плагинам в [...]

Опубликовано 30.11.2009 в 13:58 · Автор Сергей · Ссылка · Написать комментарий
Рубрики: CakePHP

Контроллеры: загрузка

Удивительно но факт. Если из консольного, например, приложения нужно попользоваться моделью, то, само собой, надо загрузить класс модели. App::import(’Model’, ‘MyModel’); Но загрузить контроллер так не получится. Получим сообщение об ошибке из-за невозможности найти базовый класс Controller. Вот найти класс Model кейк может, а Controller – нет. Во всяком случае 1.2.5. В версии 1.3 не пробовал. [...]

Опубликовано 23.11.2009 в 20:50 · Автор Сергей · Ссылка · Один комментарий
Рубрики: CakePHP · Теги: ,

Компоненты: перезагрузка

Не знаю, такую-ли ситуацию имел в виду BorisPlus в своем комментарии. Ну, чем богаты. Вообще не хотел это все описывать, потому как код довольно халтурно написан. Этот код приложения, изначально крутившийся по Cake 1.1, был переписан для какой-то беты Cake 1.2. С текущей версией, 1.2.5, он работает без проблем, но, возможно, нуждается в чистке. Эта [...]

Опубликовано 14.10.2009 в 01:02 · Автор Сергей · Ссылка · 8 комментариев
Рубрики: CakePHP · Теги: ,

Кэш и консоль

За полноценный пост не считается. Так, узелок на память. В качестве кэша байткода и переменных я использую XCache. Но при запуске консольных приложений, он у меня не работает. Должен или нет, не знаю, не разбирался. Наверное, не должен, если подумать. :-) Просто отметил, что консольные приложения Cake, включая ‘cake bake‘ высыпают кучу ошибок, если XCache [...]

Опубликовано 21.09.2009 в 19:41 · Автор Сергей · Ссылка · Один комментарий
Рубрики: CakePHP · Теги: , ,

CakePHP 1.2, Content-type, debug, RequestHandler и все-все-все

Как правильно, с точки зрения CakePHP, отвечать на запросы, если ответ требуется не html, а, например, json? Я считаю, что для получения ответа в нужном формате надо воспользоваться компонентом RequestHandler и указать в запросе расширение, в нашем случае ‘.json’. URL для запроса получится какой-то такой: http://www.oursite.com/controller/action.json Чтобы Cake не пугался этого расширения и вызывал правильное [...]

Опубликовано 12.09.2009 в 15:46 · Автор Сергей · Ссылка · Один комментарий
Рубрики: CakePHP · Теги: ,

Производительность pagination в CakePHP 1.2

Как влиять на метод контроллера paginate? Можно-ли сделать выборку более оптимальной и как? Много букв о тюнинге постраничных запросов могут быть любопытны более-менее продвинутым программистам на CakePHP

Опубликовано 15.02.2009 в 20:50 · Автор Сергей · Ссылка · Один комментарий
Рубрики: CakePHP · Теги: , , , , ,

Методы модели findBy и findAllBy

У методов модели findBy и findAllBy есть насколько параметров, не описанных или лишь слегка упомянутых в документации. Как пользоваться этими методами с максимальной отдачей?

Опубликовано 13.02.2009 в 14:44 · Автор Сергей · Ссылка · Написать комментарий
Рубрики: CakePHP · Теги: , , , , ,

Добавляем правила проверки данных на лету

Правила проверки, свойство $validates у модели — самый обычный ассоциативный массив. И никто не запрещает добавлять или удалять элементы из него «по ходу дела». Не забыли?

Опубликовано 07.02.2009 в 19:33 · Автор Сергей · Ссылка · Написать комментарий
Рубрики: CakePHP · Теги: , , , ,

Вечный логин

Используя встроенный в CakePHP компонент для аутентификации пользователей, AuthComponent, можно легко обеспечить возможность ввода логина и пароля до морковкиного заговения :-)

Опубликовано 03.02.2009 в 03:37 · Автор Сергей · Ссылка · Написать комментарий
Рубрики: CakePHP · Теги: , ,