Yii - Scripts d'entrée

Les scripts d'entrée sont responsables du démarrage d'un cycle de traitement des demandes. Ce ne sont que des scripts PHP accessibles aux utilisateurs.

L'illustration suivante montre la structure d'une application -

L'application Web (ainsi que l'application console) possède un script d'entrée unique. L'utilisateur final fait une demande au script d'entrée. Ensuite, le script d'entrée instancie les instances d'application et leur transmet les requêtes.

Le script d'entrée pour une application console est généralement stocké dans un chemin de base de projet et nommé comme yii.php. Le script d'entrée pour une application Web doit être stocké dans un répertoire accessible sur le Web. On l'appelle souventindex.php.

Les scripts d'entrée font ce qui suit -

  • Définissez des constantes.
  • Enregistrez le chargeur automatique de Composer.
  • Incluez les fichiers Yii.
  • Charger la configuration.
  • Créez et configurez une instance d'application.
  • Traitez la demande entrante.

Voici le script d'entrée pour le basic application modèle -

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

Voici le script d'entrée pour le console application -

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

Le meilleur endroit pour définir les constantes globales est les scripts d'entrée. Il y en a trois pris en charge par les constantes Yii -

  • YII_DEBUG- Définit si vous êtes en mode débogage ou non. S'il est défini sur true, nous verrons plus de données de journal et une pile d'appels d'erreur détaillée.

  • YII_ENV- Définit le mode environnement. La valeur par défaut est prod. Les valeurs disponibles sont prod, dev et test. Ils sont utilisés dans les fichiers de configuration pour définir, par exemple, une connexion DB différente (locale et distante) ou d'autres valeurs.

  • YII_ENABLE_ERROR_HANDLER - Spécifie s'il faut activer le gestionnaire d'erreurs Yii par défaut.

Pour définir une constante globale, le code suivant est utilisé -

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

Note - Les constantes globales doivent être définies au début d'un script d'entrée afin de prendre effet lorsque d'autres fichiers PHP sont inclus.