whirlwind
TDD infected, paranoid
> У меня еще вопрос для архитекторов?
Код из боевого проекта. Состав страницы (блоки) задаются через админку. В коде они суются в композитный контроллер (просто по очереди выполняет run(input,output) для каждого)
в прямолинейном варианте три блока выглядят как
в чем проблема? данные, с которыми они работают не связаны непосредственно
Код из боевого проекта. Состав страницы (блоки) задаются через админку. В коде они суются в композитный контроллер (просто по очереди выполняет run(input,output) для каждого)
PHP:
protected function _prepareComposite(PageSysInfo $page){
$map = MetaData::createObject("System.Map.Page2Controller");
$map->filterBy("master",$page);
$loader = new BulkLoader($map);
$loader->attachEssence(
MetaData::createObject("System.Reference.ControllerSysInfo"));
$loader->sort("sortorder");
$loader->fetch();
while ( $loader->next() ){
$component = $loader->get("ControllerSysInfo");
$map = $loader->get("Page2Controller");
$this->addController($map->get("controller"),
MetaData::createObject($component->get("metaid")),
$map->get("prefix"),$map->getId());
}
$this->attachListener(System::getInstance()->getTemplateResolver());
$this->attachListener(System::getInstance()->getPermissionResolver());
$this->attachListener(System::getInstance()->getPresetParamResolver());
}
PHP:
$in = ... create input driver
$out = ... create output driver
$newsCtrl = new NewsController();
$newsCtrl->run($in,$out);
$pollCtrl = new LastPollController();
$pollCtrl->run($in,$out);
$weatherCtrl = new WeatherCtrl();
$weatherCtrl->run($in,$out);