エントリスクリプトは、アプリケーションのブートストラッププロセスの最初のステップです。アプリケーション(ウェブアプリケーションまたはコンソールアプリケーションのいずれか)には、単一のエントリスクリプトがあります。エンドユーザーはエントリスクリプトにリクエストを行い、アプリケーションインスタンスをインスタンス化してリクエストを転送します。
ウェブアプリケーションのエントリスクリプトは、エンドユーザーがアクセスできるように、ウェブアクセス可能なディレクトリに保存する必要があります。多くの場合、`index.php`という名前が付けられますが、ウェブサーバーがそれらを見つけることができる限り、他の名前を使用することもできます。
コンソールアプリケーションのエントリスクリプトは、通常、アプリケーションのベースパスに保存され、`yii`(`.php`サフィックス付き)という名前が付けられます。ユーザーが`./yii <route> [arguments] [options]`コマンドを使用してコンソールアプリケーションを実行できるように、実行可能にする必要があります。
エントリスクリプトは主に以下の作業を行います。
以下は、基本的な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();
同様に、以下はコンソールアプリケーションのエントリスクリプトのコードです。
#!/usr/bin/env php
<?php
/**
* Yii console bootstrap file.
*
* @link https://yii.dokyumento.jp/
* @copyright Copyright (c) 2008 Yii Software LLC
* @license https://yii.dokyumento.jp/license/
*/
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/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ファイルがインクルードされる際に有効になります。
誤字脱字を見つけた場合、またはこのページの改善が必要だと考える場合は、
Githubで編集してください。 !
コメントするにはサインアップまたはログインしてください。