Yii - Scripts de entrada

Los scripts de entrada son responsables de iniciar un ciclo de manejo de solicitudes. Son solo scripts PHP accesibles por los usuarios.

La siguiente ilustración muestra la estructura de una aplicación:

La aplicación web (así como la aplicación de consola) tiene un script de entrada única. El usuario final realiza una solicitud al script de entrada. Luego, el script de entrada crea una instancia de las instancias de la aplicación y les envía las solicitudes.

El script de entrada para una aplicación de consola generalmente se almacena en una ruta base del proyecto y se denomina como yii.php. El script de entrada para una aplicación web debe almacenarse en un directorio accesible desde la web. A menudo se le llamaindex.php.

Los scripts de entrada hacen lo siguiente:

  • Defina constantes.
  • Registre el cargador automático de Composer.
  • Incluya archivos Yii.
  • Cargar configuración.
  • Cree y configure una instancia de aplicación.
  • Procese la solicitud entrante.

El siguiente es el script de entrada para el basic application plantilla -

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

El siguiente es el script de entrada para el console aplicación -

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

El mejor lugar para definir constantes globales son los scripts de entrada. Hay tres compatibles con las constantes de Yii:

  • YII_DEBUG- Define si estás en modo de depuración o no. Si se establece en verdadero, veremos más datos de registro y una pila de llamadas de error detallada.

  • YII_ENV- Define el modo de entorno. El valor predeterminado es prod. Los valores disponibles son prod, dev y test. Se utilizan en archivos de configuración para definir, por ejemplo, una conexión DB diferente (local y remota) u otros valores.

  • YII_ENABLE_ERROR_HANDLER - Especifica si se habilita el controlador de errores Yii predeterminado.

Para definir una constante global se utiliza el siguiente código:

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

Note - Las constantes globales deben definirse al principio de un script de entrada para que surtan efecto cuando se incluyen otros archivos PHP.