Ⅰ、基本概念
一、入口文件
入口文件内容:一般格式如下:
<?php

$yii=dirname(__FILE__).'/../../framework/yii.php';//Yii框架位置
$config=dirname(__FILE__).'/protected/config/main.php';//当前应用程序的主配置文件位置

// 部署正式环境时,去掉下面这行
// defined('YII_DEBUG') or define('YII_DEBUG',true);//是否运行在调试模式下

require_once($yii);//包含Yii框架
Yii::createWebApplication($config)->run();//根据主配置文件建立应用实例,并运行。你可以在当前应用的任何位置通过Yii::app()来访问这个实例。

二、主配置文件
保存位置:你的应用/protected/config/main.php(这个非常重要)

文件内容:一般格式如下:
<?php
return array(
    'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..', //当前应用根目录的绝对物理路径
    'name'=>'Yii Blog Demo', //当前应用的名称

// 预载入log(记录)应用组件,这表示该应用组件无论它们是否被访问都要被创建。该应用的参数配置在下面以“components”为关键字的数组中设置。
    'preload'=>array('log'), //log为组件ID

// 自动载入的模型和组件类
    'import'=>array(
        'application.models.*', //载入“application/models/”文件夹下的所有模型类
        'application.components.*', //载入“application/components/”文件夹下的所有应用组件类
    ),

'defaultController'=>'post', //设置默认控制器类

// 当前应用的组件配置。更多可供配置的组件详见下面的“核心应用组件”
    'components'=>array(
        'user'=>array( //user(用户)组件配置,“user”为组件ID
            // 可以使用基于cookie的认证
            'allowAutoLogin'=>true, //允许自动登录
        ),
        'cache'=>array( //缓存组件
                    'class'=>'CMemCache', //缓存组件类
                    'servers'=>array( //MemCache缓存服务器配置
                        array('host'=>'server1', 'port'=>11211, 'weight'=>60), //缓存服务器1
                        array('host'=>'server2', 'port'=>11211, 'weight'=>40), //缓存服务器2
                    ),
        ),
        'db'=>array( //db(数据库)组件配置,“db”为组件ID
            'connectionString' => 'sqlite:protected/data/blog.db', //连接数据库的DSN字符串
            'tablePrefix' => 'tbl_', //数据表前缀
        ),
        // 如果要使用一个MySQL数据库,请取消下面的注释
        
        'errorHandler'=>array(
            // 使用SiteController控制器类中的actionError方法显示错误
            'errorAction'=>'site/error', //遇到错误时,运行的操作。控制器名和方法名均小写,并用斜线“/”隔开
        ),
      //URL路由管理器
        'urlManager'=>array(
            'urlFormat'=>'path', //URL格式。共支持两种格式:'path'格式(如:/path/to/EntryScript.php/name1/value1/name2/value2...)和'get'格式(如: /path/to/EntryScript.php?name1=value1&name2=value2...)。当使用'path'格式时,需要设置如下的规则:
            'rules'=>array( //URL规则。语法:<参数名:正则表达式>
                'post/<id:\d+>/<title:.*?>'=>'post/view', //将post/12/helloword指向post/view?id=12&title=helloword
                'posts/<tag:.*?>'=>'post/index', //将posts/hahahaha指向post/index?tag=hahahaha
                '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
            ),
        ),
        'log'=>array(  //记录
            'class'=>'CLogRouter', //处理记录信息的类
            'routes'=>array(
                array(
                    'class'=>'CFileLogRoute', //处理错误信息的类
                    'levels'=>'error, warning', //错误等级
                ),
                // 如要将错误记录消息在网页上显示,取消下面的注释即可
                
            ),
        ),
    ), //应用组件配置结束

// 使用Yii::app()->params['参数名']可以访问应用层的参数
    'params'=>require(dirname(__FILE__).'/params.php'),
);

核心应用组件:
Yii 预定义了一系列核心应用组件,提供常见 Web 应用中所用的功能。例如, request  组件用于解析用户请求并提供例如 URL,cookie 等信息。通过配置这些核心组件的属性,我们可以几乎任意的修改Yii 的默认行为。

下面我们列出了由 CWebApplication 预定义的核心组件。
assetManager: CAssetManager - 管理私有资源文件的发布。
authManager: CAuthManager - 管理基于角色的访问控制 (RBAC).
cache: CCache - 提供数据缓存功能。注意,你必须指定实际的类(例如CMemCache, CDbCache)。否则,当你访问此组件时将返回 NULL。
clientScript: CClientScript - 管理客户端脚本 (javascripts 和 CSS).
coreMessages: CPhpMessageSource - 提供 Yii 框架用到的核心信息的翻译。
db: CDbConnection - 提供数据库连接。注意,使用此组件你必须配置其 connectionString 属性。
errorHandler: CErrorHandler - 处理未捕获的 PHP 错误和异常。
format: CFormatter - 格式化数值显示。此功能从版本 1.1.0 起开始提供。
messages: CPhpMessageSource - 提供Yii应用中使用的信息翻译。
request: CHttpRequest - 提供关于用户请求的信息。
securityManager: CSecurityManager - 提供安全相关的服务,例如散列,加密。
session: CHttpSession - 提供session相关的功能。
statePersister: CStatePersister - 提供全局状态持久方法。
urlManager: CUrlManager - 提供 URL 解析和创建相关功能
user: CWebUser - 提供当前用户的识别信息。
themeManager: CThemeManager - 管理主题。

要访问一个应用组件,使用 Yii::app()->组件的ID

Yii框架的学习指南(策码秀才篇)1-3 我是这么学习的yii framework (不间断更新中)的更多相关文章

  1. Yii框架的学习指南(策码秀才篇)1-2 一步步学习yii framework

    我也是新手,不过之前学习了tp和ci框架,所以尝鲜想看看yii到底有多强大. 如何新建一个webapp(网站应用)呢,下面是2个步骤: 1. cmd 切换到htdocs下面的yii目录下的framew ...

  2. Yii框架的学习指南(策码秀才篇)1-1 如何认识Yii framework

    Yii的框架和其他框架的区别在于:它是更加 快速,安全,专业的PHP框架 Yii是一个高性能的,适用于开发WEB2.0应用的PHP框架. Yii是一个基于组件.用于开发大型 Web 应用的 高性能 P ...

  3. 与《YII框架》不得不说的故事—5篇目录

    与<YII框架>不得不说的故事—基础篇 第1章 课程目标 1-1 课程目标 (00:54) 第2章 课前知识准备 2-1 YII的启动和安装 (05:12) 2-2 YII请求处理流程 ( ...

  4. 又一本springmvc学习指南 之---第22篇 springmvc 加载.xml文件的bean标签的过程

    writedby 张艳涛,今天看spring mvc 学习指南的第2章,特意提下这个作者是how tomcat works 俩个作者之一, 喜欢上一本书的风格,使用案例来讲述原理, 在做第一个案例的时 ...

  5. springmvc学习指南 之---第25篇 Spring Bean有三种配置方式

    writed by不要张艳涛, 从tomcat转到了springmvc 现在开始有点不知道该看什么书了,看完了springmvc 学习指南之后 又查了一些书,好多都是内容相近,在找书的过程之中,发现s ...

  6. vue学习指南:第三篇(详细) - vue的生命周期

    今天小编给大家详细讲解一下 vue 的生命周期.希望大家多多指教,哪里有遗漏的地方,也请大家指点出来 谢谢. 一. 怎么理解 Vue 的生命周期的? 生命周期:从无到有,到到无的一个过程.Vue的生命 ...

  7. vue学习指南:第十一篇(详细) - Vue的 路由 第一篇 ( router )

    一.路由的配置 路由  vue-router 1. 什么是路由? 路由相当于一个配置对象 路由:就是我们通过不同的url访问不同的内容,通过angular.js 可以实现多视图的单页,现在流行的单页面 ...

  8. vue学习指南:第十篇(详细) - Vue的 动画

    Vue 提供了一些不同的过度效果,主要根 v-if v-show 动态组件 1. Vue给动画分了6个过程,在css中,扮演6个类, 1.  .v-enter定义动画的开始状态 2.  .v-ente ...

  9. vue学习指南:第七篇(详细) - Vue的 组件通信

    Vue 的 父传子 子传父 一.父组件向子组件传值: 父传子 把需要的数据 传递给 子组件,以数据绑定(v-bind)的形式,传递到子组件内部,供子组件使用  缩写是(:) 1.创建子组件,在src/ ...

随机推荐

  1. codeforces 596 C. p-binary

    题意:给你一个n和一个p,让你用 (2k+p)进制来表示n,找出用最少的(2k+p)来表示n. 分析:首先我们看到2k,首先下想到二进制,我们可以我们列出式子,也就是 (2x1 + p)+(2x2 + ...

  2. 【十日冲刺计划】第一日 星遇Sprint1计划会议成果

    ——小组成员 赵剑峰 张傲 周龙海 Sprint 计划会议1:定出 Sprint 目标和既定产品Backlog. 会议进程(1小时) • 首先对sprint目标进行总体介绍,概括星遇的backlog, ...

  3. 吴裕雄--天生自然 PHP开发学习:数组排序

    <?php $cars=array("Volvo","BMW","Toyota"); sort($cars); print_r($ca ...

  4. 转载:Apache优化:修改最大并发连接数

    本文转自:https://blog.csdn.net/bjash/article/details/50394894 Apache是一个跨平台的web服务器,由于其简单.稳定安全的特性,被广泛应用于计算 ...

  5. HTML 的 元素分析

    一一元素分类 常用的块状元素有: <div>.<p>.<h1>...<h6>.<ol>.<ul>.<dl>.< ...

  6. c2000 N2A1 设置 KonNaD Settings & User Manual

    KonNaD Settings & User Manual c2000 N2A1  两个开关都推到左边,都设置成off

  7. Django-rest framework框架的三大认证组件

    源码分析:三大认证组件的封装 组件的认证配置: 模型层:models.py class User(BaseModel): username = models.CharField(verbose_nam ...

  8. DataStructuresAndAlgorithm--字谜游戏

    参考:http://tieba.baidu.com/p/2071585293 输入是由一些字母构成的一个二维数组以及一些单词组成.目标是要找出字谜中的单词,这些单词可能是水平.垂直或沿对角线上任何方向 ...

  9. python3.6内置模块——random详解

    python内置模块random是用来生成随机数的,在许多场合都能应用到,算是比较常见的一种模块吧,下面详细介绍其具体用法. 基本用法 随机生成浮点数:有两种,一种没有参数,默认是0~1,另一种可以指 ...

  10. 使用meshgrid生成热图和单位向量场

    需求: 生成 中heatmap unit vector field 目前的数据: 图像的shape, 关键点的x,y , heatmap的半径R 思路: 如果使用for循环来判断距离,会很慢,如果预先 ...