Yii2: работа с экземпляром приложения

yii2

Одно из основных понятий в фреймворке Yii 2.0 — приложение. В контексте Yii2, приложение — объект, который определяет структуру и и жизненный цикл запросов на веб-сайте. Приложение, так же, может быть и консольным, но мы будем рассматривать веб-приложение.

Каждый запрос к Yii-приложению осуществляется через входной скрипт, который настраивает приложение:

и запускает его:

Объект запущенного приложения доступен из всех его составляющих через Yii::$app.

Рассмотрим основные способы доступа к элементам приложения.

Yii::$app->request

Класс request, который обрабатывает все детали http-запроса в приложении. Yii::$app->request является оберткой для обычных php переменных $_SERVER, $_POST, $_GET, $_COOKIES, а так же REST. Если обратить внимание на документацию, этот класс содержит 52 свойства и 89 публичных методов! Советую обратить внимание на них и изучить внимательно, так как подробное описание здесь займет слишком много времени. Рассмотрим типовой пример использования.

Yii::$app->request->post()

Данный метод возвращает значение указанного параметра запроса POST или массив всех параметров, если не указан конкретный. Например можно получить данные формы LoginForm стандартного приложения advanced:

Еще один типовой способ использования — получение значений полей модели:

Yii::$app->formatter

Этот класс предоставляет возможности для форматирования пользовательских данных в виде даты, времени, чисел и др.  с локализацией.

Примеры использования:

Yii::$app->user

Для управление пользователями и аутентификацией можно использовать класс Yii::$app->user. В стандартных приложениях basic и advanced эти возможности уже реализованы. Одни из самых популярных методов:

Yii::$app->getSecurity

Можно использовать для хеширования и проверки паролей, генерирования псевдо-случайных данных и шифрования.

В общем случае, используется примерно так:

Yii::$app->mailer

Большинство веб-приложений, так или иначе, нуждаются в функции отправки электронной почты. Yii2 использует swiftmailerYii::$app->mailer позволяет гибко настраивать данный компонент. Пример использования:

Yii::$app->response

Ответ клиенту, отсылаемый сервером, содержит заголовки, куки и данные. Все эти данные доступны в классе Yii::$app->response. Примеры использования:

Yii::$app->db

Класс предоставляет доступ в объекту подключения к базе данных приложения. Его можно использовать для работы с базой данных, для обращения к любым ее свойствам. По сути, это реализация php pdo. Например, для прямого обращения к базе данных, в обход конкретной модели, расширяющей Active Record:

Yii::$app->urlManager

Класс, который разбирает http запросы в приложении, а так же, может генерировать ссылки на разные модули и компоненты приложения и красивые урлы. Большинство «грязной» работы скрыто от наших глаз , однако мы можем использовать Yii::$app->urlManager для следующих вещей:

Yii::$app->authManager

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

Yii::$app->view

Предоставляет доступ к объекту view структуры mvc. View содержит много методов, однако одним из самых популярных является render(). Данный метод выводит результат работы приложения в веб-браузер или консоль, в зависимости от типа приложения. События view, так же, могут быть очень полезными в ряде случаев

Заключение

В данной заметке кратко описаны некоторые детали реализации приложения в Yii 2.0 и примеры их использования. Что очень полезно для понимания сути Yii2 новичками, не имеющими опыта с php фреймворками.

Yii2: работа с экземпляром приложения: 1 комментарий

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *