Yii-エントリースクリプト

エントリスクリプトは、要求処理サイクルを開始する責任があります。これらは、ユーザーがアクセスできる単なるPHPスクリプトです。

次の図は、アプリケーションの構造を示しています-

Webアプリケーション(およびコンソールアプリケーション)には、単一のエントリスクリプトがあります。エンドユーザーがエントリスクリプトを要求します。次に、エントリスクリプトは、アプリケーションインスタンスをインスタンス化し、それらにリクエストを転送します。

コンソールアプリケーションのエントリスクリプトは通常、プロジェクトのベースパスに保存され、次の名前が付けられます。 yii.php。Webアプリケーションのエントリスクリプトは、Webアクセス可能なディレクトリに保存する必要があります。よく呼ばれますindex.php

エントリスクリプトは次のことを行います-

  • 定数を定義します。
  • Composerオートローダーを登録します。
  • Yiiファイルを含めます。
  • 構成をロードします。
  • アプリケーションインスタンスを作成して構成します。
  • 着信要求を処理します。

以下は、のエントリスクリプトです。 basic application テンプレート-

<?php
   //defining global constants
   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 files
   require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
  
   //load application config
   $config = require(__DIR__ . '/../config/web.php');
  
   //create, config, and process reques
   (new yii\web\Application($config))->run();
?>

以下は、のエントリスクリプトです。 console アプリケーション-

#!/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/ 
   */
   //defining global constants
   defined('YII_DEBUG') or define('YII_DEBUG', true);
  
   //register composer autoloader
   require(__DIR__ . '/vendor/autoload.php');
   require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');
  
   //load config
   $config = require(__DIR__ . '/config/console.php');
  
   //apply config the application instance 
   $application = new yii\console\Application($config);  

   //process request
   $exitCode = $application->run();
   exit($exitCode);
?>

グローバル定数を定義するのに最適な場所は、入力スクリプトです。Yii定数によってサポートされる3つがあります-

  • YII_DEBUG−デバッグモードであるかどうかを定義します。trueに設定すると、より多くのログデータと詳細なエラー呼び出しスタックが表示されます。

  • YII_ENV−環境モードを定義します。デフォルト値はprodです。使用可能な値は、prod、dev、およびtestです。これらは、構成ファイルで使用され、たとえば、異なるDB接続(ローカルおよびリモート)またはその他の値を定義します。

  • YII_ENABLE_ERROR_HANDLER −デフォルトのYiiエラーハンドラーを有効にするかどうかを指定します。

グローバル定数を定義するには、次のコードを使用します-

//defining global constants 
defined('YII_DEBUG') or define('YII_DEBUG', true); 
which is equivalent to: 
if(!defined('YII_DEBUG')) { 
   define('YII_DEBUG', true); 
}

Note −他のPHPファイルが含まれている場合に有効にするために、グローバル定数はエントリスクリプトの先頭で定義する必要があります。