阿江 2017-10-05 07:30:31 1760次浏览 0条回复 0 0 0

说明

学习Yii Framework 2易2框架的过程是漫长的也是充满乐趣的以下是我学习Yii2框架时对官网英文资料(请参见原文网址)的翻译和代码实现提供了较完整的代码供你参考不妥之处请多多指正

原文网址:

http://www.yiiframework.com/doc-2.0/guide-structure-overview.html
Application Structure Overview(应用结构概述)
http://www.yiiframework.com/doc-2.0/guide-structure-entry-scripts.html
Entry Scripts(入口脚本)

本文主题:应用结构概述和入口脚本(Application Structure Overview and Entry Scripts)

应用结构概述(Overview)

Yii应用依照MVC(model-view-controller)结构方式组织构建。模型(Model)代表数据、业务逻辑和规则;视图(View)是模型输出的表现形式;控制器获取输入并将其转换成模型和视图的命令。 除了MVC,Yii应用还有以下实体(entity): 入口脚本(entry script),入口脚本是终端用户直接获取的PHP脚本,它是响应一个请求处理周期的开始。 应用(application),应用是全局获取的对象,它管理着应用组件并在请求处理中进行协调。 应用组件(application components),应用组件是在应用中注册的,它们为请求处理提供各种服务。 模块(module),模块是自包含(self-contained)的程序包,每个模块都有完整的MVC结构,一个应用可以由多个模块组成。 过滤器(filter),过滤器是控制器处理每个请求时,可以在执行之前或之后被调用的代码。 小部件(widget),小部件是可以在视图中调用的对象,它们可以包含控制器逻辑,并可以在多个视图中复用。

入口脚本(Entry Scripts)

入口脚本分为两类: Web应用的入口脚本(Web application),index.php 控制台应用的入口脚本(console application),yii.php ./yii [arguments][options]

入口脚本的主要任务: 1、定义全局常量 2、注册Composer autoloader 3、包含Yii类文件 4、加载应用配置 5、创建和配置一个应用实例 6、调用yii\base\Application::run()处理请求

//Frontend入口脚本 D:\phpwork\advanced\frontend\web\index.php

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

require(__DIR__ . '/../../vendor/autoload.php');
require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
require(__DIR__ . '/../../common/config/bootstrap.php');
require(__DIR__ . '/../config/bootstrap.php');

$config = yii\helpers\ArrayHelper::merge(
    require(__DIR__ . '/../../common/config/main.php'),
    require(__DIR__ . '/../../common/config/main-local.php'),
    require(__DIR__ . '/../config/main.php'),
    require(__DIR__ . '/../config/main-local.php')
);

$application = new yii\web\Application($config);
$application->run();

//console入口脚本 D:\phpwork\advanced\yii

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

require(__DIR__ . '/vendor/autoload.php');
require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');
require(__DIR__ . '/common/config/bootstrap.php');
require(__DIR__ . '/console/config/bootstrap.php');

$config = yii\helpers\ArrayHelper::merge(
    require(__DIR__ . '/common/config/main.php'),
    require(__DIR__ . '/common/config/main-local.php'),
    require(__DIR__ . '/console/config/main.php'),
    require(__DIR__ . '/console/config/main-local.php')
);

$application = new yii\console\Application($config);
$exitCode = $application->run();
exit($exitCode);
常量定义(Defining Constants)

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

YII_DEBUG:定义应用是否运行在调试(debug)模式。当应用处于调试模式时,一个应用会记录更多的日志信息,并在异常抛出时显示大量的错误信息,所以调试模式仅仅在开发期间被使用。其默认值是false。
YII_ENV:定义应用运行的环境,在配置章节将会有更详细的描述。默认值是'prod',意味着应用将运行在产品环境中。取值范围:'prod','dev'
YII_ENABLE_ERROR_HANDLER:定义Yii的错误处理程序是否启用,默认值是true。

配置章节的文档: http://www.yiiframework.com/doc-2.0/guide-concept-configurations.html#environment-constants

代码备注:

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

等同于:

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

(全文完)

    没有找到数据。
您需要登录后才可以回复。登录 | 立即注册