ホームページ >php教程 >PHP开发 >Yii2.0 入口脚本

Yii2.0 入口脚本

伊谢尔伦
伊谢尔伦オリジナル
2016-11-25 14:23:011292ブラウズ

エントリ スクリプトは、アプリケーション起動プロセスの最初のステップです。アプリケーション (Web アプリケーションであってもコンソール アプリケーションであっても) にはエントリ スクリプトが 1 つだけあります。エンドユーザーのリクエストは、アプリケーションをインスタンス化してリクエストをアプリケーションに転送するエントリ スクリプトを通過します。

Web アプリケーションのエントリ スクリプトは、エンド ユーザーがアクセスできるディレクトリに配置する必要があります。通常は、index.php という名前、または Web サーバーによって見つけられるその他の名前が付けられます。

コンソール アプリケーションのエントリ スクリプトは、通常、アプリケーションのルート ディレクトリに yii (接尾辞 .php) という名前が付けられ、ユーザーがコマンド ./yii d31b1a7c44939764b30ad061c016a24f を渡すことができるように、ファイルには実行権限が必要です。オプション] を選択してコンソール アプリケーションを実行します。

エントリ スクリプトは主に次の作業を完了します:

グローバル定数を定義する;

[[Yii]] クラス ファイルを含む;

アプリケーション インスタンスを作成して構成する;

[[yiibaseApplication::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();

コンソール アプリケーション

以下は、コンソール アプリケーションのエントリ スクリプトです:

#!/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);

定数を定義します

エントリ スクリプトが最適ですグローバル定数を定義する方法 ここで、Yii は次の 3 つの定数をサポートします:

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);

上記のコードは次と同等です:

if (!defined(&#39;YII_DEBUG&#39;)) {
    define(&#39;YII_DEBUG&#39;, true);
}

明らかに、最初のコードの方が簡潔で理解しやすいです。

他の PHP ファイルがインクルードされたときに定数が有効になるように、定数の定義はエントリ スクリプトの先頭にある必要があります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。