Das Eingabeskript ist der erste Schritt im Anwendungsstartprozess. Eine Anwendung (sei es eine Webanwendung oder eine Konsolenanwendung) hat nur ein Eingabeskript. Endbenutzeranfragen durchlaufen das Eingabeskript, das die Anwendung instanziiert und die Anfrage an die Anwendung weiterleitet.
Das Eingabeskript der Webanwendung muss in einem Verzeichnis abgelegt werden, auf das Endbenutzer zugreifen können, normalerweise mit dem Namen index.php oder anderen Namen, die vom Webserver gefunden werden können.
Das Eingabeskript der Konsolenanwendung trägt im Allgemeinen den Namen yii (Suffix .php) im Stammverzeichnis der Anwendung. Die Datei erfordert eine Ausführungsberechtigung, damit der Benutzer den Befehl ./yii
Das Eingabeskript erledigt hauptsächlich die folgende Arbeit:
Globale Konstanten definieren;
Enthält [[Yii]]-Klassendateien ;
Anwendungskonfiguration laden;
Eine Anwendungsinstanz erstellen und konfigurieren;
Rufen Sie [[yiibaseApplication::run()]] auf, um die Anfrage zu bearbeiten.
Webanwendung
Das Folgende ist der Code für das Eingabeskript der Basisanwendungsvorlage:
Konsolenanwendung<?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();
Das Folgende ist die Eintrag für ein Konsolenanwendungsskript:
Konstanten definieren#!/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); // fcgi 默认没有定义 STDIN 和 STDOUT defined('STDIN') or define('STDIN', fopen('php://stdin', 'r')); defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w')); // 注册 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);
Das Eintragsskript ist der beste Ort, um globale Konstanten zu definieren:
YII_DEBUG : Gibt an, ob die Anwendung im Debug-Modus ausgeführt wird. Im Debugmodus speichert die Anwendung mehr Protokollinformationen und wenn eine Ausnahme ausgelöst wird, wird ein detaillierter Fehleraufrufstapel angezeigt. Daher eignet sich der Debug-Modus hauptsächlich für die Verwendung während der Entwicklungsphase und der Standardwert von YII_DEBUG ist false.
YII_ENV: Identifiziert die Umgebung, in der die Anwendung ausgeführt wird. Weitere Informationen finden Sie im Konfigurationskapitel. Der Standardwert von YII_ENV ist „prod“, was bedeutet, dass die Anwendung in einer Online-Produktionsumgebung ausgeführt wird.
YII_ENABLE_ERROR_HANDLER: Gibt an, ob die von Yii bereitgestellte Fehlerbehandlung aktiviert werden soll. Der Standardwert ist „true“.
Beim Definieren einer Konstante wird diese normalerweise mit einem Code ähnlich dem folgenden definiert:
Der obige Code entspricht:defined('YII_DEBUG') or define('YII_DEBUG', true);
if (!defined('YII_DEBUG')) { define('YII_DEBUG', true); }
Konstantendefinitionen sollten am Anfang des Eingabeskripts stehen, damit die Konstanten wirksam werden, wenn andere PHP-Dateien eingebunden werden.