4.0 KiB
Skrypty wejściowe
Skrypty wejściowe są pierwszym krokiem procesu bootstrapowania aplikacji. Aplikacja (zarówno Web jak i konsolowa) posiada pojedynczy skrypt wejściowy. Użytkownicy końcowi wysyłają żądania do skryptów wejściowych, które inicjują instancje aplikacji i przekazują do nich te żądania.
Skrypty wejściowe dla aplikacji Web muszą znajdować się w folderach dostępnych dla Web, aby użytkownicy końcowi mogli je wywołać.
Zwykle nazywane są index.php, ale mogą mieć inne nazwy pod warunkiem, że serwery Web potrafią je zlokalizować.
Skrypty wejściowe dla aplikacji konsolowych trzymane są zwykle w ścieżce głównej
aplikacji i nazywane yii (z sufiksem .php). Powinny być wykonywalne, aby użytkownicy
mogli uruchomić aplikacje konsolowe za pomocą komendy ./yii <ścieżka> [argumenty] [opcje].
Skrypty wejściowe wykonują głównie następującą pracę:
- Definiują globalne stałe,
- Rejestrują autoloader Composera,
- Dołączają plik klasy Yii,
- Ładują konfigurację aplikacji,
- Tworzą i konfigurują instancję aplikacji,
- Wywołują yii\base\Application::run(), aby przetworzyć wysłane żądanie.
Aplikacje Web
Poniżej znajdziesz kod skryptu wejściowego dla Podstawowego projektu szablonu Web.
<?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();
Aplikacje konsoli
Podobnie poniżej kod skryptu wejściowego dla aplikacji konsolowej:
#!/usr/bin/env php
<?php
/**
* Yii console bootstrap file.
*
* @link https://www.yiiframework.com/
* @copyright Copyright (c) 2008 Yii Software LLC
* @license https://www.yiiframework.com/license/
*/
defined('YII_DEBUG') or define('YII_DEBUG', true);
// 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);
Definiowanie stałych
Skrypty wejściowe są najlepszym miejscem do definiowania globalnych stałych. Yii wspiera następujące trzy stałe:
YII_DEBUG: określa czy aplikacja działa w trybie debugowania. Podczas tego trybu aplikacja przetrzymuje więcej informacji w logach i zdradza szczegóły stosu błędów, kiedy rzucony jest wyjątek. Z tego powodu tryb debugowania powinien być używany głównie podczas fazy deweloperskiej. Domyślną wartościąYII_DEBUGjestfalse.YII_ENV: określa środowisko, w którym aplikacja działa. Opisane jest to bardziej szczegółowo w sekcji Konfiguracje. Domyślną wartościąYII_ENVjest'prod', co oznacza, że aplikacja jest uruchomiona w środowisku produkcyjnym.YII_ENABLE_ERROR_HANDLER: określa czy uruchomić obsługę błędów przygotowaną przez Yii. Domyślną wartością tej stałej jesttrue.
Podczas definiowania stałej często korzystamy z poniższego kodu:
defined('YII_DEBUG') or define('YII_DEBUG', true);
co odpowiada:
if (!defined('YII_DEBUG')) {
define('YII_DEBUG', true);
}
Jak widać pierwszy sposób jest bardziej zwięzły i łatwiejszy do zrozumienia.
Definiowanie stałych powinno odbyć się na samym początku skryptu wejściowego, aby odniosło skutek podczas dołączania pozostałych plików PHP.