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

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

Старт! Честный VDS/VPS, на котором «Лунная База» живет уже 20+ лет

Задумываетесь о том, чтобы поднять свой pet-проект, сайт клиента или настроить окружение для разработки? Уже пора подумать, где арендовать железо.

Лунная База хостится на FirstVDS более 20 лет. Мыслей о том, чтобы перебраться на другой хостинг, не было ни разу (хотя опыт работы с другими вариантами, конечно, есть).

Бывали разные ситуации, но они бывают на любом железе. Главное, что нужно понять: здесь нет маркетинговой шелухи и сказок про «мы всё сделаем за вас». Если вы берете VDS — вам дают полный root, возможность накатить любую ОС и не лезут в ваши конфиги.

Если в саппорт написать с вопросом по вашему коду и получить ответ: «Читайте документацию и разбирайтесь сами» или «Обратитесь к профильному специалисту» — это не повод обижаться. Это повод углубить свои знания в DevOps и сайтостроении! Бегите от тех, кто пообещает: «Мы всё чиним и настраиваем абсолютно бесплатно!». Никто никогда не работает «по доброте душевной» в ущерб себе, а бесплатный сыр в администрировании обычно заканчивается сломанной базой данных.

Что по факту: Гибкое масштабирование ядер и RAM, экономия по сравнению с физическими серверами и адекватная панель ispmanager, если она вам нужна.



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

После установки 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. Компонент "ответ" отправляет готовый результат работы приложения браузеру пользователя.

Самый честный хостинг за 20+ лет существования Лунной Базы

Задумываешься о том, чтобы поднять свой сайт в Интернете? Уже пора подумать о том, какой хостинг выбрать?

Лунная База хостится 20+ лет на firstDVS. При этом, мыслей о том, чтобы перебраться на другой хостинг не было. (Но, при этом есть опыт работы с другими вариантами.)

Бывали с firstDVS разные ситуации, но, они бывают на всех хостингах. Единственное, что тут важно понять, - это то, что никто ничего тебе не будет впаривать... Но, и работать за тебя тоже никто не станет. Если в саппорт ответили: «Читайте по ссылке и разбирайтесь сами...» или вообще «Обратитесь за помощью к специалисту», - это повод углубить свои знания в области сайтостроения, а не бежать к тем, что пообещают: «Мы всё чиним и всё делаем за своих клиентов абсолютно бесплатно!» Никто никогда ничего ни за кого "по доброте душевной" не делал, не делает и не будет делать!

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню