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

29Май/090

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 пятому!

Связано с категорией: Code Нет комментариев
19Май/090

Вечерне-утренний обход

С недавнего времени я работаю в новой компании. Для консперации буду называть её DDD.
Компания не маленькая, весьма интересная и как полагается, со своими особенностями.
Утро каждого работника начинается с обходняка по кабинету всех уже пришедших, дабы одарить их своим теплым рукопожатием.
День проходит весьма однообразно. Сидишь, работаешь, пьешь чай/кофе/что-либо-другое и заедаешь печеньками/вафлями/зефиром/чем-либо-ещё.
И вот приходит вечер и ты из последних сил с львиным желанием побыстрее пойти по своим делам делаешь очередной обходняк.
Порой складывается ощущение, что никому из сидящих это не так уж и критически необходимо, ибо все заняты своими делами, ну или пытаются себя ими занять.

На днях, пришел в DDD новый веб-программист - Леонидий. Обычный интеллегент с красным носом, постоянно просящий ему что-то объяснить или помочь.
В первый же день ему поставили Ubuntu Linux. Через пару часов веб-программист Леонидий его убил вместе с винчестером. Весь оставшийся день Леонидий провёл в чтении достояния DDD - различной литературы, дабы расширить своё "я и так всё знаю" видимо до уровня "АААа! Точно! Как же это я?!".
На следующий день плотность заполнения его мозга новыми знаниями увеличилась до предела и под напором длительного отсутствия общения с компьютером Леонидий отправился домой.

Сегодня - день третий. Леонидий получил новый комп с новой системой. Пару раз прибегал с просьбой поставить ему Gimp и *программу для PHP*. На данный момент всё *вроде бы* без проишествий...

... И все снова в ожидании обходняка!

Связано с категорией: Новости Нет комментариев