Контроллер

Материал из Micro PHP Framework
Перейти к: навигация, поиск

Контроллер - отвечает за обработку запросов пользователя, обновление состояний и данных моделей и их отрисовка с помощью видов.

Controllers API Views API

Дополнительно классы контроллеры выполняют дополнительные операции (обработку представлений и работу с фильтрами), поэтому "контроллером" является не класс, а его Действие (публичный метод с action в имени или класс с Action в имени, прописанный в действиях контроллера).

Использование

При получении запроса, фреймворк при необходимости "преобразовывает" его с помощью правил валидации и находит соответствующий Контроллер запускает определённые в нём PRE-фильтры, выполняет сам контроллер, запускает POST-фильтры, и выводит результат.

Пример

<?php // app/controllers/IndexController.php
class IndexController extends \Micro\mvc\controllers\ViewController
{
    public function 
filters()
    {
        return [
                    [
                        
'class'   => '\Micro\filters\XssFilter',
                        
'actions' => 'index',
                        
'clean'   => '*'
                    
]
        ];
    }
    public function 
actions()
    {
        return [
            
'error' => '\App\controllers\actions\ErrorAction'
        
];
    }
    public function 
actionIndex()
    {
        
$view = new \Micro\mvc\views\PhpView;
        
$view->addParameter('hello''Hello, world!');
        return 
$view;
    }
}

Мы определили фильтр XSS на действие index , определили внешнее действие error в виде класса ErrorAction. В действии actionIndex мы создали Представление и передали ему параметр. Для полноты примера создадим необходимое представление.

<?php // app/views/index/index.php
<?= $hello;

Мы отрисовали переданный в view параметр hello, результат:

Hello, world!