Класс Yaf_Controller_Abstract

(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()).

Замечание:

Аргументы извлекаются напрямую без фильтрации, перед использованием их следует тщательно обработать.

Обзор классов

abstractclassYaf_Controller_Abstract {
public$actions;
protected$_module;
protected$_name;
protected$_request;
protected$_response;
protected$_invoke_args;
protected$_view;
finalprivate__construct()
protecteddisplay(string$tpl, array$parameters = ?): bool
publicforward(string$action, array$paramters = ?): bool
publicgetInvokeArg(string$name): void
publicgetName(): string
publicinit(): void
publicinitView(array$options = ?): void
publicredirect(string$url): bool
protectedrender(string$tpl, array$parameters = ?): string
publicsetViewpath(string$view_directory): void
}

Свойства

actions

Вы также можете определить метод действия в отдельном скрипте PHP, используя это свойство и Yaf_Action_Abstract.

Пример #1 Определение действия в отдельном файле

<?php
class IndexController extends Yaf_Controller_Abstract {
protected
$actions = array(

"dummy" => "actions/Dummy_action.php",
);


public function indexAction($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() {
}
}
?>
_module

имя модуля

_name

имя контроллера

_request

текущий объект запроса

_response

текущий объект ответа

_invoke_args

_view

объект движка отображения

Содержание

To Top