Yii — создание своих типов Action-ов
Пишу одно прлиожение на Yii Framework. Структура приложения такова, что необходимо разграничить экшены контроллеров(CController) по папкам и сделать их типовыми.
Экшены разграничиваются легко.
Предположим, что у нас есть ряд экшенов для администрирования. Всем им надо установить какие-либо свойства или же сделать при их вызове какие-то типовые действия.
Рассмотрим на примере изменения титла страницы.
Вот код моего базового экшена:
class dotPlantAdminAction extends CAction { /** * Constructor. * Runs CAction constructor and makes some changes for Admin action type */ public function __construct($controller,$id) { parent::__construct($controller,$id); $this->controller->pageTitle = dotPlant::getName() . " - Admin "; } public function run() { } } |
В конструкторе мы сначала вызываем parent::__construct с необходимыми параметрами. Это грубо-говоря идёт инициализация базового CAction.
Допустим у нас есть контроллер SettingsController. И нам нужно сделать его на основе нашего экшена. Создаем папку protected/controllers/Settings/. В ней создаем файл ActionAdmin.php с таким вот кодом:
class ActionAdmin extends dotPlantAdminAction { public function run() { $this->controller->render('admin'); } } |
Видите? Нам достаточно только объявить run() и уже всё готово. При загрузке запустится необходимый нам конструктор базового контроллера с нашими действиями.
Вот по такому принципу я разграничиваю например админку в своей CMS dotPlant на Yii Framework. Слава PHP пятому!
Вечерне-утренний обход
С недавнего времени я работаю в новой компании. Для консперации буду называть её DDD.
Компания не маленькая, весьма интересная и как полагается, со своими особенностями.
Утро каждого работника начинается с обходняка по кабинету всех уже пришедших, дабы одарить их своим теплым рукопожатием.
День проходит весьма однообразно. Сидишь, работаешь, пьешь чай/кофе/что-либо-другое и заедаешь печеньками/вафлями/зефиром/чем-либо-ещё.
И вот приходит вечер и ты из последних сил с львиным желанием побыстрее пойти по своим делам делаешь очередной обходняк.
Порой складывается ощущение, что никому из сидящих это не так уж и критически необходимо, ибо все заняты своими делами, ну или пытаются себя ими занять.
На днях, пришел в DDD новый веб-программист - Леонидий. Обычный интеллегент с красным носом, постоянно просящий ему что-то объяснить или помочь.
В первый же день ему поставили Ubuntu Linux. Через пару часов веб-программист Леонидий его убил вместе с винчестером. Весь оставшийся день Леонидий провёл в чтении достояния DDD - различной литературы, дабы расширить своё "я и так всё знаю" видимо до уровня "АААа! Точно! Как же это я?!".
На следующий день плотность заполнения его мозга новыми знаниями увеличилась до предела и под напором длительного отсутствия общения с компьютером Леонидий отправился домой.
Сегодня - день третий. Леонидий получил новый комп с новой системой. Пару раз прибегал с просьбой поставить ему Gimp и *программу для PHP*. На данный момент всё *вроде бы* без проишествий...
... И все снова в ожидании обходняка!