Создание компонента контроллера многократного использования в Lithium
В настоящее время я занимаюсь разработкой приложения для Lithium и наткнулся на написанную мной функцию, которую я хотел бы использовать на нескольких контроллерах.
Я явно не хочу иметь функцию в каждом контроллере. Каков стандартный способ создания повторно используемого компонента в Lithium?
Отсутствие возможности поиска по их документации затрудняет поиск каких-либо подробностей.
3 ответа
Вы можете попробовать расширить контроллер. Расширение контроллеров не так уж плохо в соответствии с разработчиками ядра. Если это не так и вариант, вы можете извлечь свой код в плагин, хотя все еще некоторый код в контроллере.
Все, что вам нужно сделать, это создать extensions/action/Controller.php
и пусть ваши контролеры расширяют это.
В вашем extensions/action/Controller.php
<?php
namespace app\extensions\action;
class Controller extends \lithium\action\Controller {
protected function _init() {
parent::_init();
//add your functionality here
}
}
?>
И тогда ваш контроллер должен расширить вышеупомянутый базовый контроллер: class MyController extends \app\extensions\action\Controller {
Я думаю, что это не литий-специфическая вещь. Вы можете либо наследовать от Controller и создать свой собственный базовый контроллер, но вы также можете создавать произвольные классы, которые содержат вашу функциональность. Не позволяйте рамкам мешать вам =)
Что касается документации: я обычно гугл в смысле "<keywords> site:lithify.me"