Yii - Script di ingresso

Gli script di ingresso sono responsabili dell'avvio di un ciclo di gestione delle richieste. Sono solo script PHP accessibili dagli utenti.

La figura seguente mostra la struttura di un'applicazione:

L'applicazione Web (così come l'applicazione console) ha uno script di immissione singola. L'utente finale fa richiesta allo script di immissione. Quindi lo script di immissione crea istanze dell'applicazione e inoltra loro le richieste.

Lo script di immissione per un'applicazione console viene solitamente memorizzato in un percorso di base del progetto e denominato come yii.php. Lo script di immissione per un'applicazione Web deve essere archiviato in una directory accessibile dal Web. Viene spesso chiamatoindex.php.

Gli script Entry eseguono le seguenti operazioni:

  • Definisci le costanti.
  • Registrare il caricatore automatico di Composer.
  • Includi file Yii.
  • Carica configurazione.
  • Crea e configura un'istanza dell'applicazione.
  • Elaborare la richiesta in arrivo.

Di seguito è riportato lo script di immissione per basic application modello -

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

Di seguito è riportato lo script di immissione per console applicazione -

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

Il posto migliore per definire le costanti globali sono gli script di ingresso. Ce ne sono tre supportati dalle costanti Yii:

  • YII_DEBUG- Definisce se sei in modalità debug o meno. Se impostato su true, vedremo più dati di registro e stack di chiamate di errore in dettaglio.

  • YII_ENV- Definisce la modalità ambiente. Il valore predefinito è prod. I valori disponibili sono prod, dev e test. Vengono utilizzati nei file di configurazione per definire, ad esempio, una diversa connessione DB (locale e remota) o altri valori.

  • YII_ENABLE_ERROR_HANDLER - Specifica se abilitare il gestore degli errori Yii predefinito.

Per definire una costante globale viene utilizzato il codice seguente:

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

Note - Le costanti globali dovrebbero essere definite all'inizio di uno script di immissione per avere effetto quando sono inclusi altri file PHP.