Выносим обработку евентов в отдельный файл
В транковой версии на github.com появилась возможность выносить объемную обработку евентов из экшена в отдельные файлы.
Эти файлы размещаются в каталоге
Рассмотрим более подробно.
Пусть у нас будет экшен
Читать дальше →
Эти файлы размещаются в каталоге
/classes/actions/[action]/Event[Name].class.php
, где [action]
— это название экшена, которому принадлежит евент, [Name]
— название внешнего обработчика евента.Рассмотрим более подробно.
Пусть у нас будет экшен
ActionBlog.class.php
:<?php class ActionBlog extends Action { public $oUserCurrent=null; public function Init() { $this->oUserCurrent=$this->User_GetUserCurrent(); $this->SetDefaultEvent('index'); } /** * Регистрируем евенты * */ protected function RegisterEvent() { /** * Регистрируем внешние обработчики евентов */ $this->RegisterEventExternal('Topic','ActionBlog_EventTopic'); $this->AddEvent('index','EventIndex'); $this->AddEventPreg('/^topic$/i','/^(\d+)\.html$/i','/^$/i','Topic::EventShowTopic'); $this->AddEventPreg('/^topic$/i','/^list$/i','/^$/i','Topic::EventList'); } protected function EventIndex() { /** * Устанавливаем шаблон для вывода */ $this->SetTemplateAction('index'); } } ?>
Читать дальше →