diff --git a/docs/guide-ru/structure-entry-scripts.md b/docs/guide-ru/structure-entry-scripts.md new file mode 100644 index 0000000000..29a5d545e3 --- /dev/null +++ b/docs/guide-ru/structure-entry-scripts.md @@ -0,0 +1,115 @@ +Входные скрипты +=============== + +Входные скрипты это первое звено в процессе начальной загрузки приложения. Приложение (веб приложение или консольное приложение) +включает единый входной скрипт. Конечные пользователи делают запросы к входному скрипту, +который создает объекты приложения и перенаправляет запрос к ним. + +Входные скрипты для веб приложений должны быть сохранены в папках, доступных из веб, таким образом они могут быть +доступны конечным пользователям. Такие скрипты обычно именуются `index.php`, но так же могут использовать другие имена, +которые могут быть распознаны используемыми веб-серверами. + +Входные скрипты для консольных приложений обычно расположены в [базовой папке](structure-applications.md) приложений и имеют название +`yii` (с суффиксом `.php`). Они должны иметь права на выполнение, таким образом пользователи смогут запускать консольные приложения +через команду `./yii <маршрут> [аргументы] [опции]`. + +Входные скрипты в основном делают следующую работу: + +* Объявляют глобальные константы; +* Регистрируют загрузчик классов [Composer](http://getcomposer.org/doc/01-basic-usage.md#autoloading); +* Подключают файл класса [[Yii]]; +* Загружают конфигурацию приложения; +* Создают и конфигурируют объект [приложения](structure-applications.md); +* Вызывают метод [[yii\base\Application::run()]] приложения для обработки входящего запроса. + + +## Веб приложения + +Ниже представлен код входного скрипта для [базового шаблона приложения](start-installation.md). + +```php +run(); +``` + + +## Консольные приложения + +Ниже представлен аналогичный код входного скрипта консольного приложения: + +```php +#!/usr/bin/env php +run(); +exit($exitCode); +``` + + +## Объявление констант + +Входные скрипты являются наилучшим местом для объявления глобальных констант. Yii поддерживают следующие три константы: + +* `YII_DEBUG`: указывает работает ли приложение в отладочном режиме. Находясь в отладочном режиме, приложение будет собирать + больше информации в логи и покажет детальный стек вызовов если возникнет исключение. По этой причине, отладочный режим должен + быть использован только в процессе разработки. По-умолчанию значение `YII_DEBUG` равно false; +* `YII_ENV`: указывает в каком окружении запущено приложение. Данная тема подробно описана в разделе [Конфигурации](concept-configurations.md#environment-constants). + По-умолчанию значение `YII_ENV` равно `'prod'`, означающие, что приложение запущено в производственном режиме; +* `YII_ENABLE_ERROR_HANDLER`: указывает нужно ли включать имеющийся в Yii обработчик ошибок. По-умолчанию значение данной константы + равно true. + +При определении константы, мы обычно используем следующий код: + +```php +defined('YII_DEBUG') or define('YII_DEBUG', true); +``` + +который равнозначен коду, приведенному ниже: + +```php +if (!defined('YII_DEBUG')) { + define('YII_DEBUG', true); +} +``` + +Первый способ является более кратким и понятным. + +Константы должны быть определены как можно раньше, в самом начале входного скрипта, таким образом они могут оказать влияние, +когда остальные PHP файлы будут подключены. diff --git a/docs/guide/structure-entry-scripts.md b/docs/guide/structure-entry-scripts.md index cf61263bfa..584ca3968d 100644 --- a/docs/guide/structure-entry-scripts.md +++ b/docs/guide/structure-entry-scripts.md @@ -71,7 +71,7 @@ defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w')); // register Composer autoloader require(__DIR__ . '/vendor/autoload.php'); -// load application configuration +// include Yii class file require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php'); // load application configuration