Входные скрипты Yii 2
Входные скрипты Yii 2

Входные скрипты

Входные скрипты это первое звено в процессе начальной загрузки приложения. Приложение (веб приложение или консольное приложение) включает единый входной скрипт. Конечные пользователи делают запросы к входному скрипту, который создает объекты приложения и перенаправляет запрос к ним.

Входные скрипты для веб приложений должны быть сохранены в папках, доступных из веб, таким образом они могут быть доступны конечным пользователям. Такие скрипты обычно именуются index.php, но так же могут использовать другие имена, которые могут быть распознаны используемыми веб-серверами.

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

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

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

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

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

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



Входные скрипты для консольных приложений обычно расположены в базовой папке приложений и имеют название yii (с суффиксом .php). Они должны иметь права на выполнение, таким образом пользователи смогут запускать консольные приложения через команду ./yii <маршрут> [аргументы] [опции].

Входные скрипты в основном делают следующую работу:

  • Объявляют глобальные константы;
  • Регистрируют загрузчик классов Composer;
  • Подключают файл класса [[Yii]];
  • Загружают конфигурацию приложения;
  • Создают и конфигурируют объект приложения;
  • Вызывают метод [[yii\base\Application::run()]] приложения для обработки входящего запроса.

Веб приложения

Ниже представлен код входного скрипта для базового шаблона приложения.

<?php

defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

// регистрация загрузчика классов Composer
require __DIR__ . '/../vendor/autoload.php';

// подключение файла класса Yii
require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';

// загрузка конфигурации приложения
$config = require __DIR__ . '/../config/web.php';

// создание и конфигурация приложения, а также вызов метода для обработки входящего запроса
(new yii\web\Application($config))->run();

Консольные приложения

Ниже представлен аналогичный код входного скрипта консольного приложения:

#!/usr/bin/env php
<?php
/**
 * Yii console bootstrap file.
 *
 * @link http://www.yiiframework.com/
 * @copyright Copyright (c) 2008 Yii Software LLC
 * @license http://www.yiiframework.com/license/
 */

defined('YII_DEBUG') or define('YII_DEBUG', true);

// регистрация загрузчика классов Composer
require __DIR__ . '/vendor/autoload.php';

// подключение файла класса Yii
require __DIR__ . '/vendor/yiisoft/yii2/Yii.php';

// загрузка конфигурации приложения
$config = require __DIR__ . '/config/console.php';

$application = new yii\console\Application($config);
$exitCode = $application->run();
exit($exitCode);

Объявление констант

Входные скрипты являются наилучшим местом для объявления глобальных констант. Yii поддерживают следующие три константы:

  • YII_DEBUG: указывает работает ли приложение в отладочном режиме. Находясь в отладочном режиме, приложение будет собирать больше информации в логи и покажет детальный стек вызовов если возникнет исключение. По этой причине, отладочный режим должен быть использован только в процессе разработки. По-умолчанию значение YII_DEBUG равно false;
  • YII_ENV: указывает в каком окружении запущено приложение. Данная тема подробно описана в разделе Конфигурации. По-умолчанию значение YII_ENV равно 'prod', означающие, что приложение запущено в производственном режиме;
  • YII_ENABLE_ERROR_HANDLER: указывает нужно ли включать имеющийся в Yii обработчик ошибок. По-умолчанию значение данной константы равно true.

При определении константы, мы обычно используем следующий код:

defined('YII_DEBUG') or define('YII_DEBUG', true);

который равнозначен коду, приведенному ниже:

if (!defined('YII_DEBUG')) {
    define('YII_DEBUG', true);
}

Первый способ является более кратким и понятным.

Константы должны быть определены как можно раньше, в самом начале входного скрипта, таким образом они могут оказать влияние, когда остальные PHP файлы будут подключены.

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

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

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

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

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