Архив рубрики «CakePHP»
Особенности межплагинного взаимодействия
Конечно, вызывать методы классов плагина из другого плагина не очень хорошо. Но, тем не менее. Чтобы впоследствии не было мучительно больно, при объявлении связей между моделями, надо всегда указывать свойство className, причем полностью, т.е. ‘Plugin.MyModel’. Иначе возможны весьма забавные эффекты. Справедливо для версий 1.2 и 1.3. Дальше немного кода.
Рубрики: CakePHP · Теги: CakePHP, Models, Plugins, Модели, Модель
Список всех-всех контроллеров
Понадобилось мне получить список всех контроллеров приложения, включая контроллеры плагинов. Configure::listObjects, увы, такого не умеет. Этот метод выдает только все контроллеры приложения, но без контроллеров плагинов. Пришлось немного адаптировать метод, предложенный Rob Weaver в гуглогруппе CakePHP. На выходе у моего метода получается объединенный список контроллеров. Основные — как отдает метод listObjects, а принадлежащие плагинам в [...]
Контроллеры: загрузка
Удивительно но факт. Если из консольного, например, приложения нужно попользоваться моделью, то, само собой, надо загрузить класс модели. App::import(’Model’, ‘MyModel’); Но загрузить контроллер так не получится. Получим сообщение об ошибке из-за невозможности найти базовый класс Controller. Вот найти класс Model кейк может, а Controller – нет. Во всяком случае 1.2.5. В версии 1.3 не пробовал. [...]
Рубрики: CakePHP · Теги: Console, Controller
Компоненты: перезагрузка
Не знаю, такую-ли ситуацию имел в виду BorisPlus в своем комментарии. Ну, чем богаты. Вообще не хотел это все описывать, потому как код довольно халтурно написан. Этот код приложения, изначально крутившийся по Cake 1.1, был переписан для какой-то беты Cake 1.2. С текущей версией, 1.2.5, он работает без проблем, но, возможно, нуждается в чистке. Эта [...]
Рубрики: CakePHP · Теги: CakePHP, Component
Кэш и консоль
За полноценный пост не считается. Так, узелок на память. В качестве кэша байткода и переменных я использую XCache. Но при запуске консольных приложений, он у меня не работает. Должен или нет, не знаю, не разбирался. Наверное, не должен, если подумать. :-) Просто отметил, что консольные приложения Cake, включая ‘cake bake‘ высыпают кучу ошибок, если XCache [...]
Рубрики: CakePHP · Теги: CakePHP, config, XCache
CakePHP 1.2, Content-type, debug, RequestHandler и все-все-все
Как правильно, с точки зрения CakePHP, отвечать на запросы, если ответ требуется не html, а, например, json? Я считаю, что для получения ответа в нужном формате надо воспользоваться компонентом RequestHandler и указать в запросе расширение, в нашем случае ‘.json’. URL для запроса получится какой-то такой: http://www.oursite.com/controller/action.json Чтобы Cake не пугался этого расширения и вызывал правильное [...]
Рубрики: CakePHP · Теги: parseExtensions, RequestHandler
Производительность pagination в CakePHP 1.2
Как влиять на метод контроллера paginate? Можно-ли сделать выборку более оптимальной и как? Много букв о тюнинге постраничных запросов могут быть любопытны более-менее продвинутым программистам на CakePHP
Рубрики: CakePHP · Теги: Models, optimization, pagination, tips and tricks, Модели, Модель
Методы модели findBy и findAllBy
У методов модели findBy и findAllBy есть насколько параметров, не описанных или лишь слегка упомянутых в документации. Как пользоваться этими методами с максимальной отдачей?
Рубрики: CakePHP · Теги: find, findAllBy, findBy, Models, optimization, tips and tricks
Добавляем правила проверки данных на лету
Правила проверки, свойство $validates у модели — самый обычный ассоциативный массив. И никто не запрещает добавлять или удалять элементы из него «по ходу дела». Не забыли?
Рубрики: CakePHP · Теги: Form, validates, validation, Validator, Модель
Вечный логин
Используя встроенный в CakePHP компонент для аутентификации пользователей, AuthComponent, можно легко обеспечить возможность ввода логина и пароля до морковкиного заговения :-)
Рубрики: CakePHP · Теги: AuthComponent, авторизация, Детские грабли

