Создание компонента контроллера многократного использования в 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"

Другие вопросы по тегам