Maison php教程 PHP开发 Yii2.0 入口脚本

Yii2.0 入口脚本

Nov 25, 2016 pm 02:23 PM

入口脚本是应用启动流程中的第一环,一个应用(不管是网页应用还是控制台应用)只有一个入口脚本。终端用户的请求通过入口脚本实例化应用并将将请求转发到应用。

Web 应用的入口脚本必须放在终端用户能够访问的目录下,通常命名为 index.php,也可以使用 Web 服务器能定位到的其他名称。

控制台应用的入口脚本一般在应用根目录下命名为 yii(后缀为.php),该文件需要有执行权限,这样用户就能通过命令 ./yii [arguments] [options] 来运行控制台应用。

入口脚本主要完成以下工作:

定义全局常量;

注册 Composer 自动加载器;

包含 [[Yii]] 类文件;

加载应用配置;

创建一个应用实例并配置;

调用 [[yii\base\Application::run()]] 来处理请求。

Web 应用

以下是基础应用模版入口脚本的代码:

<?php
    defined(&#39;YII_DEBUG&#39;) or define(&#39;YII_DEBUG&#39;, true);
    defined(&#39;YII_ENV&#39;) or define(&#39;YII_ENV&#39;, &#39;dev&#39;);
    // 注册 Composer 自动加载器
    require(__DIR__ . &#39;/../vendor/autoload.php&#39;);
    // 包含 Yii 类文件
    require(__DIR__ . &#39;/../vendor/yiisoft/yii2/Yii.php&#39;);
    // 加载应用配置
    $config = require(__DIR__ . &#39;/../config/web.php&#39;);
    // 创建、配置、运行一个应用
    (new yii\web\Application($config))->run();
Copier après la connexion

控制台应用

以下是一个控制台应用的入口脚本:

#!/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(&#39;YII_DEBUG&#39;) or define(&#39;YII_DEBUG&#39;, true);
    // fcgi 默认没有定义 STDIN 和 STDOUT
    defined(&#39;STDIN&#39;) or define(&#39;STDIN&#39;, fopen(&#39;php://stdin&#39;, &#39;r&#39;));
    defined(&#39;STDOUT&#39;) or define(&#39;STDOUT&#39;, fopen(&#39;php://stdout&#39;, &#39;w&#39;));
    // 注册 Composer 自动加载器
    require(__DIR__ . &#39;/vendor/autoload.php&#39;);
    // 包含 Yii 类文件
    require(__DIR__ . &#39;/vendor/yiisoft/yii2/Yii.php&#39;);
    // 加载应用配置
    $config = require(__DIR__ . &#39;/config/console.php&#39;);
    $application = new yii\console\Application($config);
    $exitCode = $application->run();
    exit($exitCode);
Copier après la connexion

定义常量

入口脚本是定义全局常量的最好地方,Yii 支持以下三个常量:

YII_DEBUG:标识应用是否运行在调试模式。当在调试模式下,应用会保留更多日志信息,如果抛出异常,会显示详细的错误调用堆栈。因此,调试模式主要适合在开发阶段使用,YII_DEBUG 默认值为 false。

YII_ENV:标识应用运行的环境,详情请查阅配置章节。YII_ENV 默认值为 'prod',表示应用运行在线上产品环境。

YII_ENABLE_ERROR_HANDLER:标识是否启用 Yii 提供的错误处理,默认为 true。

当定义一个常量时,通常使用类似如下代码来定义:

defined(&#39;YII_DEBUG&#39;) or define(&#39;YII_DEBUG&#39;, true);
Copier après la connexion

上面的代码等同于:

if (!defined(&#39;YII_DEBUG&#39;)) {
    define(&#39;YII_DEBUG&#39;, true);
}
Copier après la connexion

显然第一段代码更加简洁易懂。

常量定义应该在入口脚本的开头,这样包含其他 PHP 文件时,常量就能生效。


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)