美文网首页
(6)PHP之Yii2入口脚本的熟悉

(6)PHP之Yii2入口脚本的熟悉

作者: LuckTime | 来源:发表于2016-08-21 06:59 被阅读141次

转自:http://www.yiibai.com/yii2/yii_entry_scripts.html
入口脚本是负责启动一个请求处理周期。用户访问只是通过PHP脚本。
下图显示了一个应用程序的结构 -
Yii入口脚本
Entry Scripts Structure

Paste_Image.png

Web应用程序(以及控制台应用程序)具有一个<b>单一入口脚本</b>。终端用户从入口脚本发起一个请求。然后,入口脚本实例化应用实例并将请求转发给它们。

<b>控制台应用程序入口脚本通常存储在一个项目基本路径并命名为yii.php。</b>
<b>Web应用程序入口脚本必须存储在Web访问的目录下。它通常是index.php。</b>

入口脚本执行以下操作

定义常量
注册 Composer 自动加载
包括 Yii 文件
加载配置
创建和配置一个应用程序实例
处理传入的请求
以下是基本的应用程序入口脚本的模板-

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

以下是控制台应用程序的入口脚本 -

#!/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常量被定义-
YII_DEBUG − 定义是否在调试模式。如果设置为true,那么将看到更多的日志数据和细节错误的调用堆栈。

YII_ENV − 定义环境模式。默认值是prod。

可用值为 prod, dev 和 test. 它们在配置文件中用来定义:例如,一个不同的数据库连接(本地和远程)或其它值。

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); 
} 

注 - 全局常量应在入口脚本的开头定义,以便包含其他PHP文件时生效。

相关文章

  • (6)PHP之Yii2入口脚本的熟悉

    转自:http://www.yiibai.com/yii2/yii_entry_scripts.html入口脚本是...

  • yii2启动流程分析

    前言 本文主要分析Yii2应用的启动、运行的过程,主要包括以下三部分:入口脚本、启动应用、运行应用。 入口脚本 启...

  • Yii2框架源码研究1-Object

    继承树分析 看yii2框架的源代码会发现,请求的入口,也就是index.php文件,相当的简单,在入口文件中有一行...

  • Yii学习笔记1

    应用结构 静态结构图 请求流程 用户向入口脚本 web/index.php 发起请求。 入口脚本加载应用配置并创建...

  • Yii2开篇

    一:框架请求的生命周期 1. 用户向入口脚本web/index.php发起请求。 2.入口脚本加载应用配置并创建一...

  • Yii2 PHP框架

    自动加载函数 Yii2 PHP框架学习记录--自动加载函数 常量 Yii2 PHP框架学习记录-常量 $_SERV...

  • 用发展的眼光追技术

    本文从 PHP 语言的 YII2 框架说起,简单谈一些技术的演变和发展脉络。 YII2 这个框架是 PHP 语言生...

  • 学习规划

    学习方向较为明确,特此罗列: PHP重点学习yii2,因为yii2里面包含了大部分的PHP高级特性及最前沿的技术。...

  • 十二.框架执行流程分析

    1.index.php 入口文件 2.ThinkPHP/ThinkPHP.php 定义常量的方式(在php5.3之...

  • yii2 图形验证码点击不刷新

    目标文件:vendor\yiisoft\yii2\captcha\CaptchaAction.php 在$this...

网友评论

      本文标题:(6)PHP之Yii2入口脚本的熟悉

      本文链接:https://www.haomeiwen.com/subject/lenisttx.html