Spec-Zone.ru › Yii 2.0

Скрипты входа

  1. Веб-приложения
  2. Консольные приложения
  3. Определение констант

Скрипты входа — это первая стадия процесса запуска приложения. Приложение (будь то веб-приложение или консольное) имеет единственный скрипт входа. Пользователи отправляют запросы в скрипты входа, которые создают экземпляры приложения и перенаправляют запросы в них.

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

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

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

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

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

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

<?php

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

// register Composer autoloader
require(__DIR__ . '/../vendor/autoload.php');

// include Yii class file
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');

// load application configuration
$config = require(__DIR__ . '/../config/web.php');

// create, configure and run application
(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);
defined('YII_ENV') or define('YII_ENV', 'dev');

// register Composer autoloader
require(__DIR__ . '/vendor/autoload.php');

// include Yii class file
require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');

// load application configuration
$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-файлов.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/guide-structure-entry-scripts.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API