Запуск приложения в php-фреймворке Yii 2
Как работает приложение на php-фреймворке Yii

Пошаговый разбор работы php-фреймфорка Yii. Инструкция на русском языке.



Запуск приложения

После установки Yii базовое приложение будет доступно либо по URL http://hostname/basic/web/index.php, либо по http://hostname/index.php, в зависимости от настроек Web сервера. Данный раздел - общее введение в организацию кода, встроенный функционал и обработку обращений приложением Yii.

Info: далее в данном руководстве предполагается, что Yii установлен в директорию basic/web, которая, в свою очередь, установлена как корневой каталог в настройках Web сервера. В результате, обратившись по URL http://hostname/index.php, Вы получите доступ к приложению, расположенному в basic/web. Детальнее с процессом начальной настройки можно познакомиться в разделе Установка Yii.

Отметим, что в отличие от самого фреймворка как только приложение установлено, оно становится целиком вашим. Вы можете изменять его код как угодно.

Функциональность

Установленный шаблон простого приложения состоит из четырех страниц:

  • домашняя страница, отображается при переходе по URL http://hostname/index.php
  • страница "About" ("О нас")
  • на странице "Contact" находится форма обратной связи, на которой пользователь может обратиться к разработчику по e-mail
  • на странице "Login" отображается форма авторизации. Попытайтесь авторизоваться с логином/паролем "admin/admin". Обратите внимание на изменение раздела "Login" в главном меню на "Logout".

Эти страницы используют смежный хедер (шапка сайта) и футер (подвал). В "шапке" находится главное меню, при помощи которого пользователь перемещается по сайту. В "подвале" - копирайт и общая информация.

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

В дополнение к веб приложению имеется консольный скрипт с названием yii, который находится в базовой директории приложения. Этот скрипт может быть использован для выполнения фоновых задач и обслуживания приложения. Всё это описано в разделе Консольные команды.

Структура приложения Yii

Ниже приведен список основных директорий и файлов вашего приложения (считаем, что приложение установлено в директорию basic):

basic/                  корневой каталог приложения
    composer.json       используется Composer'ом, содержит описание приложения
    config/             конфигурационные файлы
        console.php     конфигурация консольного приложения
        web.php         конфигурация Web приложения
    commands/           содержит классы консольных команд
    controllers/        контроллеры
    models/             модели
    runtime/            файлы, которые генерирует Yii во время выполнения приложения (логи, кэш и т.п.)
    vendor/             содержит пакеты Composer'а и, собственно, сам фреймворк Yii
    views/              виды приложения
    web/                корневая директория Web приложения. Содержит файлы, доступные через Web
        assets/         скрипты, используемые приложением (js, css)
        index.php       точка входа в приложение Yii. С него начинается выполнение приложения
    yii                 скрипт выполнения консольного приложения Yii

В целом, приложение Yii можно разделить на две категории файлов: расположенные в basic/web и расположенные в других директориях. Первая категория доступна через Web (например, браузером), вторая не доступна извне и не должна быть доступной т.к. содержит служебную информацию.

В Yii реализован архитектурный паттерн MVC, которая соответствует структуре директорий приложения. В директории models находятся Модели, в views расположены Виды, а в каталоге controllers все Контроллеры приложения.

Диаграмма ниже демонстрирует внутреннее устройство приложения.

внутреннее устройство приложения yii 2

В каждом приложении Yii есть точка входа в приложение, web/index.php это единственный PHP-скрипт доступный для выполнения из Web. Он принимает входящий запрос и создает экземпляр приложения. Приложение обрабатывает входящие запросы при помощи компонентов и отправляет запрос контроллеру. Виджеты используются в Видах для построения динамических интерфейсов сайта.

Жизненный цикл пользовательского запроса

На диаграмме показано как приложение обрабатывает запрос.

Жизненный цикл запроса yii 2

  1. Пользователь обращается к точке входа web/index.php.
  2. Скрипт загружает конфигурацию configuration и создает экземпляр приложения для дальнейшей обработки запроса.
  3. Приложение определяет маршрут запроса при помощи компонента приложения запрос.
  4. Приложение создает экземпляр контроллера для выполнения запроса.
  5. Контроллер, в свою очередь, создает действие и накладывает на него фильтры.
  6. Если хотя бы один фильтр дает сбой, выполнение приложения останавливается.
  7. Если все фильтры пройдены - приложение выполняется.
  8. Действие загружает модель данных. Вероятнее всего из базы данных.
  9. Действие генерирует вид, отображая в нем данные (в т.ч. и полученные из модели).
  10. Сгенерированный вид приложения передается как компонент ответ.
  11. Компонент "ответ" отправляет готовый результат работы приложения браузеру пользователя.
Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню