A free and open-source book on ZF3 for beginners


4.7. Контейнеры для переменных

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

Как вы можете видеть, метод indexAction() Index-контроллера возвращает экземпляр класса ViewModel. Класс ViewModel - это своего рода переменная-контейнер. Все переменные, переданные в ее конструктор, затем будут автоматически доступны скрипту представления.

Давайте рассмотрим пример из реальной жизни. Мы создадим еще один метод действия в нашем классе IndexController, который мы назовем aboutAction(). Действие "about" будет отображать страницу About Us нашего сайта. В методе действия мы создадим две переменные, содержащие информацию о нашем сайте, и вернем переменные для передачи в представление с помощью объекта ViewModel:

// Действие "about" 
public function aboutAction() 
{              
    $appName = 'HelloWorld';
    $appDescription = 'A sample application for the Using Zend Framework 3 book';
    
    // Возвращает переменные скрипту представления с помощью 
    // переменной-контейнера ViewModel
    return new ViewModel([
        'appName' => $appName,
        'appDescription' => $appDescription
    ]);
}

В строках 4-5 мы создаем переменные $appName и $appDescription. Они хранят соответственно имя и описание нашего приложения.

В строках 9-12 мы передаем переменные, которые мы создали, в конструктор объекта ViewModel как ассоциативный массив. Ключи массива определяют имена переменных, которые после возврата будут доступны скрипту представления.

Класс ViewModel предоставляет несколько методов, которые вы можете дополнительно использовать, чтобы установить переменные в ViewModel и извлечь переменные из него. Таблица 4.5 расскажет о этих методах:

Таблица 4.5. Методы класса ViewModel
Имя метода Описание
getVariable($name, $default) Возвращает переменную по имени (или значение по умолчанию, если переменной не существует).
setVariable($name, $value) Устанавливает переменную.
setVariables($variables, $overwrite) Устанавливает набор переменных; есть возможность перезаписи уже существующих.
getVariables() Возвращает все переменные как массив.
clearVariables() Удаляет все переменные.

Top