Yii - Scripts de entrada

Os scripts de entrada são responsáveis ​​por iniciar um ciclo de tratamento de solicitação. Eles são apenas scripts PHP acessíveis aos usuários.

A ilustração a seguir mostra a estrutura de um aplicativo -

O aplicativo da Web (assim como o aplicativo de console) possui um script de entrada única. O usuário final faz uma solicitação ao script de entrada. Em seguida, o script de entrada instancia as instâncias do aplicativo e encaminha as solicitações para elas.

O script de entrada para um aplicativo de console é geralmente armazenado em um caminho de base do projeto e nomeado como yii.php. O script de entrada para um aplicativo da web deve ser armazenado em um diretório acessível pela web. Muitas vezes é chamadoindex.php.

Os scripts de entrada fazem o seguinte -

  • Defina constantes.
  • Registre o autoloader do Composer.
  • Inclui arquivos Yii.
  • Carregue a configuração.
  • Crie e configure uma instância do aplicativo.
  • Processe a solicitação recebida.

A seguir está o script de entrada para o basic application modelo -

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

A seguir está o script de entrada para o console aplicação -

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

O melhor lugar para definir constantes globais são os scripts de entrada. Existem três constantes do Yii suportadas -

  • YII_DEBUG- Define se você está no modo de depuração ou não. Se definido como verdadeiro, veremos mais dados de log e pilha de chamadas de erro de detalhes.

  • YII_ENV- Define o modo de ambiente. O valor padrão é prod. Os valores disponíveis são prod, dev e test. Eles são usados ​​em arquivos de configuração para definir, por exemplo, uma conexão de banco de dados diferente (local e remota) ou outros valores.

  • YII_ENABLE_ERROR_HANDLER - Especifica se deve ativar o manipulador de erros Yii padrão.

Para definir uma constante global, o seguinte código é usado -

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

Note - As constantes globais devem ser definidas no início de um script de entrada para ter efeito quando outros arquivos PHP forem incluídos.