エントリ スクリプトは、アプリケーション起動プロセスの最初のステップです。アプリケーション (Web アプリケーションであってもコンソール アプリケーションであっても) にはエントリ スクリプトが 1 つだけあります。エンドユーザーのリクエストは、アプリケーションをインスタンス化してリクエストをアプリケーションに転送するエントリ スクリプトを通過します。
Web アプリケーションのエントリ スクリプトは、エンド ユーザーがアクセスできるディレクトリに配置する必要があります。通常は、index.php という名前、または Web サーバーによって見つけられるその他の名前が付けられます。
コンソール アプリケーションのエントリ スクリプトは、通常、アプリケーションのルート ディレクトリに yii (接尾辞 .php) という名前が付けられ、ユーザーがコマンド ./yii d31b1a7c44939764b30ad061c016a24f を渡すことができるように、ファイルには実行権限が必要です。オプション] を選択してコンソール アプリケーションを実行します。
エントリ スクリプトは主に次の作業を完了します:
グローバル定数を定義する;
[[Yii]] クラス ファイルを含む;
アプリケーション インスタンスを作成して構成する;
[[yiibaseApplication::run()]] を呼び出してリクエストを処理します。
Web アプリケーション
以下は、基本的なアプリケーション テンプレートのエントリ スクリプトのコードです:
<?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();
コンソール アプリケーション
以下は、コンソール アプリケーションのエントリ スクリプトです:
#!/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);
定数を定義します
エントリ スクリプトが最適ですグローバル定数を定義する方法 ここで、Yii は次の 3 つの定数をサポートします:
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 ファイルがインクルードされたときに定数が有効になるように、定数の定義はエントリ スクリプトの先頭にある必要があります。