Yii 框架入口脚本示例分析

目录
  • 入口脚本
    • Web 应用
    • 控制台应用
    • 定义常量

本文实例讲述了Yii 框架入口脚本。分享给大家供大家参考,具体如下:

入口脚本

入口脚本是应用启动流程中的第一环, 一个应用(不管是网页应用还是控制台应用)只有一个入口脚本。 终端用户的请求通过入口脚本实例化应用并将请求转发到应用。

Web 应用的入口脚本必须放在终端用户能够访问的目录下, 通常命名为 index.php, 也可以使用 Web 服务器能定位到的其他名称。

控制台应用的入口脚本一般在应用根目录下命名为 yii(后缀为.php), 该文件需要有执行权限, 这样用户就能通过命令 ./yii <route> [arguments] [options] 来运行控制台应用。

入口脚本主要完成以下工作:

Web 应用

以下是基础应用模版入口脚本的代码:

<?php

defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

// 注册 Composer 自动加载器
require __DIR__ . '/../vendor/autoload.php';

// 包含 Yii 类文件
require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';

// 加载应用配置
$config = require __DIR__ . '/../config/web.php';

// 创建、配置、运行一个应用
(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/
 */

defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

// 注册 Composer 自动加载器
require __DIR__ . '/vendor/autoload.php';

// 包含 Yii 类文件
require __DIR__ . '/vendor/yiisoft/yii2/Yii.php';

// 加载应用配置
$config = require __DIR__ . '/config/console.php';

$application = new yii\console\Application($config);
$exitCode = $application->run();
exit($exitCode);

定义常量

入口脚本是定义全局常量的最好地方,Yii 支持以下三个常量:

  • YII_DEBUG:标识应用是否运行在调试模式。当在调试模式下,应用会保留更多日志信息, 如果抛出异常,会显示详细的错误调用堆栈。 因此,调试模式主要适合在开发阶段使用,YII_DEBUG 默认值为 false。
  • YII_ENV:标识应用运行的环境,详情请查阅 配置章节。 YII_ENV 默认值为 'prod',表示应用运行在线上产品环境。
  • YII_ENABLE_ERROR_HANDLER:标识是否启用 Yii 提供的错误处理, 默认为 true。

当定义一个常量时,通常使用类似如下代码来定义:

defined('YII_DEBUG') or define('YII_DEBUG', true);

上面的代码等同于:

if (!defined('YII_DEBUG')) {
 define('YII_DEBUG', true);
}

显然第一段代码更加简洁易懂。

常量定义应该在入口脚本的开头,这样包含其他 PHP 文件时, 常量就能生效。

更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

(0)

相关推荐

  • Yii 框架使用Gii生成代码操作示例

    本文实例讲述了Yii 框架使用Gii生成代码操作.分享给大家供大家参考,具体如下: 开始 Gii Gii 是 Yii 中的一个模块. 可以通过配置应用的 modules 属性开启它.通常来讲在 config/web.php 文件中会有以下配置代码: $config = [ ... ]; if (YII_ENV_DEV) { $config['bootstrap'][] = 'gii'; $config['modules']['gii'] = [ 'class' => 'yii\gii\Modul

  • Yii 框架使用Forms操作详解

    本文实例讲述了Yii 框架使用Forms操作.分享给大家供大家参考,具体如下: 创建模型 模型类 EntryForm 代表从用户那请求的数据, 该类如下所示并存储在 models/EntryForm.php 文件中. 请参考类自动加载章节获取更多关于类命名约定的介绍. <?php namespace app\models; use Yii; use yii\base\Model; class EntryForm extends Model { public $name; public $emai

  • Yii入门教程之目录结构、入口文件及路由设置

    项目名称从"FantaCMS"修改成为"testyii"------ 俗! 1,项目目录结构分析 2,Yii入口文件分析 在Yii启动项目时,传递了项目主配置文件数组,那么Yii会在整个应用中绑定一个全局的Yii对象并且可以通过如下方法来调用该对象:Yii::app() Yii系统把配置文件中的数组值,通过键值对的形式绑定到了该对象上,例如在配置文件中我们配置了: 'name'=>'My Web Application', 那么我们在项目的任何一个地方通过该对

  • Yii 框架应用(Applications)操作实例详解

    本文实例讲述了Yii 框架应用(Applications)操作.分享给大家供大家参考,具体如下: 应用主体 ¶ 应用主体是管理 Yii 应用系统整体结构和生命周期的对象. 每个Yii应用系统只能包含一个应用主体,应用主体在 入口脚本 中创建并能通过表达式 \Yii::$app 全局范围内访问. 信息: 当我们说"一个应用",它可能是一个应用主体对象,也可能是一个应用系统, 是根据上下文来决定[译:中文为避免歧义,Application翻译为应用主体]. Yii有两种应用主体: 网页应用

  • Yii框架小部件(Widgets)用法实例详解

    本文实例讲述了Yii框架小部件(Widgets)用法.分享给大家供大家参考,具体如下: 小部件 ¶ 小部件是在 视图 中使用的可重用单元, 使用面向对象方式创建复杂和可配置用户界面单元. 例如,日期选择器小部件可生成一个精致的允许用户选择日期的日期选择器, 你只需要在视图中插入如下代码: <?php use yii\jui\DatePicker; ?> <?= DatePicker::widget(['name' => 'date']) ?> Yii提供许多优秀的小部件,比如

  • Yii框架安装简明教程

    本文实例讲述了Yii框架安装方法.分享给大家供大家参考,具体如下: YII相关网站 www.yiiframework.com https://github.com/yiisoft/yii2 packagist仓库:https://packagist.org/ composer global require "fxp/composer-asset-plugin:~1.0.0" //下载静态资源插件 composer create-project --prefer-dist yiisoft

  • Yii 框架使用数据库(databases)的方法示例

    本文实例讲述了Yii 框架使用数据库(databases)的方法.分享给大家供大家参考,具体如下: 配置数据库连接 ¶ 开始之前,请确保你已经安装了 PHP PDO 扩展和你所使用的数据库的 PDO 驱动(例如 MySQL 的 pdo_mysql). 对于使用关系型数据库来讲,这是基本要求. 驱动和扩展安装可用后,打开 config/db.php 修改里面的配置参数对应你的数据库配置. 该文件默认包含这些内容: <?php return [ 'class' => 'yii\db\Connect

  • Yii框架应用组件用法实例分析

    本文实例讲述了Yii框架应用组件用法.分享给大家供大家参考,具体如下: 应用组件 ¶ 应用主体是服务定位器, 它部署一组提供各种不同功能的 应用组件 来处理请求. 例如,urlManager组件负责处理网页请求路由到对应的控制器. db组件提供数据库相关服务等等. 在同一个应用中,每个应用组件都有一个独一无二的 ID 用来区分其他应用组件, 你可以通过如下表达式访问应用组件. \Yii::$app->componentID 例如,可以使用 \Yii::$app->db 来获取到已注册到应用的

  • PHP的Yii框架中YiiBase入口类的扩展写法示例

    通过yiic.php自动创建一个应用后,入口文件初始代码如下: <?php // change the following paths if necessary $yii=dirname(__FILE__).'/../yii/framework/yii.php'; $config=dirname(__FILE__).'/protected/config/main.php'; // remove the following lines when in production mode defined

  • yii的入口文件index.php中为什么会有这两句

    yii的应用模板中,index.php中 前面会有这两句 <?php // comment out the following two lines when deployed to production defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII_ENV') or define('YII_ENV', 'dev'); 当部署到生产环境时,注释掉下面两行,上面的注释是这样说的. 但经过团队开发和部署环境的人,都知道,

随机推荐