array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'class.yaf-controller-abstract.php', 1 => 'Yaf_Controller_Abstract', ), 'up' => array ( 0 => 'book.yaf.php', 1 => 'Yaf', ), 'prev' => array ( 0 => 'yaf-config-simple.valid.php', 1 => 'Yaf_Config_Simple::valid', ), 'next' => array ( 0 => 'yaf-controller-abstract.construct.php', 1 => 'Yaf_Controller_Abstract::__construct', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/yaf/yaf-controller-abstract.xml', ), 'extra_header_links' => array ( 'rel' => 'alternate', 'href' => '/manual/en/feeds/class.yaf-controller-abstract.atom', 'type' => 'application/atom+xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(Yaf >=1.0.0)
Yaf_Controller_Abstract это сердце системы Yaf. MVC расшифровывается как Model-View-Controller и представляет собой шаблон проектирования, предназначенный для отделения логики приложения от логики отображения
Каждый пользовательский контроллер должен наследовать Yaf_Controller_Abstract.
Вы обнаружите, что не можете определить функцию __construct для своего пользовательского контроллера, поэтому Yaf_Controller_Abstract предоставляет
Если вы определили метод init() в своём пользовательском контроллере, он будет вызываться до тех пор, пока будет создан экземпляр контроллера.
У действия при поступлении запроса могут быть аргументы. Если в параметрах запроса есть одна и та же переменная имени (Yaf_Request_Abstract::getParam()) после перенаправления, Yaf передаст их методу действия (Yaf_Action_Abstract::execute()).
Замечание:
Аргументы извлекаются напрямую без фильтрации, перед использованием их следует тщательно обработать.
Вы также можете определить метод действия в отдельном скрипте PHP, используя это свойство и Yaf_Action_Abstract.
Пример #1 Определение действия в отдельном файле
<?php
class IndexController extends Yaf_Controller_Abstract {
protected $actions = array(
/** теперь dummyAction определяется в отдельном файле */
"dummy" => "actions/Dummy_action.php",
);
/* у метода действия могут быть аргументы */
public function indexAction($name, $id) {
/* $name и $id небезопасные необработанные данные */
assert($name == $this->getRequest()->getParam("name"));
assert($id == $this->_request->getParam("id"));
}
}
?>
Пример #2 Dummy_action.php
<?php
class DummyAction extends Yaf_Action_Abstract {
/* класс действия должен определить этот метод как точку входа */
public function execute() {
}
}
?>
имя модуля
имя контроллера
текущий объект запроса
текущий объект ответа
объект движка отображения