Блог веб-программиста

16Сен/093

Создаём расширяемую структуру на Yii Framework

Хочу предложить Вашему вниманию концепт расширяемой структуры приложения на Yii Framework. Я уже писал как сделать свои Actions на Yii.

Сегодня же речь пойдёт о написании стандартных экшенов для контроллеров и их расширения.

Предположим, в приложении у нас все контроллеры наследуются от класса dotPlantFrontMainController.

Нам необходимо, чтобы у всех контроллеров было действие Breadcrumb.

Для этого, в базовом контроллере dotPlantFrontMainController переопределяем функцию actions() следующим образом:

public function actions()
 {
 return array(
 'breadcrumb' => 'application.extensions.actionBreadcrumb',
 );
 }

Если в унаследованном контроллере(скажем News) мы используем экшены из других файлов, то нам необходимо также переопределить функцию примерно вот так:

public function actions()
 {
 // return external action classes, e.g.:
 return array_merge(
 parent::actions(),
 array(
 'admin'=>'application.controllers.News.ActionAdmin',
 )
 );
 }

Таким образом, в News будут экшены определенные в базовом классе dotPlantFrontMainController плюс ActionAdmin.

Переписать же actionBreadcrumb можно уже в теле самого News.

В итоге имеем легко расширяемую структуру. В самом же базовом классе массив actions можно автоматически генерировать в соответствии с установленными расширениями. Всё легко и просто 🙂

Связано с категорией: Code Оставить комментарий
Комментарии (3) Пинги (0)
  1. когда уже выйдет стабильный релиз dotplant?
    кстати, код на темно-сером фоне не всегда удочно читать:)

  2. @Satellite: до стабильного ещё не скоро. Первую альфу можно ждать в начале ноября 🙂

  3. удачи в разработке:) хотелось бы, чтобы существовала возможность инсталляции доп модулей + какойнибудь простенький faq по созданию своего модуля


Leave a comment

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Нет обратных ссылок на эту запись.