Yii框架的学习指南(策码秀才篇)1-3 我是这么学习的yii framework (不间断更新中)
Ⅰ、基本概念
一、入口文件
入口文件内容:一般格式如下:
<?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 (不间断更新中)的更多相关文章
- Yii框架的学习指南(策码秀才篇)1-2 一步步学习yii framework
我也是新手,不过之前学习了tp和ci框架,所以尝鲜想看看yii到底有多强大. 如何新建一个webapp(网站应用)呢,下面是2个步骤: 1. cmd 切换到htdocs下面的yii目录下的framew ...
- Yii框架的学习指南(策码秀才篇)1-1 如何认识Yii framework
Yii的框架和其他框架的区别在于:它是更加 快速,安全,专业的PHP框架 Yii是一个高性能的,适用于开发WEB2.0应用的PHP框架. Yii是一个基于组件.用于开发大型 Web 应用的 高性能 P ...
- 与《YII框架》不得不说的故事—5篇目录
与<YII框架>不得不说的故事—基础篇 第1章 课程目标 1-1 课程目标 (00:54) 第2章 课前知识准备 2-1 YII的启动和安装 (05:12) 2-2 YII请求处理流程 ( ...
- 又一本springmvc学习指南 之---第22篇 springmvc 加载.xml文件的bean标签的过程
writedby 张艳涛,今天看spring mvc 学习指南的第2章,特意提下这个作者是how tomcat works 俩个作者之一, 喜欢上一本书的风格,使用案例来讲述原理, 在做第一个案例的时 ...
- springmvc学习指南 之---第25篇 Spring Bean有三种配置方式
writed by不要张艳涛, 从tomcat转到了springmvc 现在开始有点不知道该看什么书了,看完了springmvc 学习指南之后 又查了一些书,好多都是内容相近,在找书的过程之中,发现s ...
- vue学习指南:第三篇(详细) - vue的生命周期
今天小编给大家详细讲解一下 vue 的生命周期.希望大家多多指教,哪里有遗漏的地方,也请大家指点出来 谢谢. 一. 怎么理解 Vue 的生命周期的? 生命周期:从无到有,到到无的一个过程.Vue的生命 ...
- vue学习指南:第十一篇(详细) - Vue的 路由 第一篇 ( router )
一.路由的配置 路由 vue-router 1. 什么是路由? 路由相当于一个配置对象 路由:就是我们通过不同的url访问不同的内容,通过angular.js 可以实现多视图的单页,现在流行的单页面 ...
- vue学习指南:第十篇(详细) - Vue的 动画
Vue 提供了一些不同的过度效果,主要根 v-if v-show 动态组件 1. Vue给动画分了6个过程,在css中,扮演6个类, 1. .v-enter定义动画的开始状态 2. .v-ente ...
- vue学习指南:第七篇(详细) - Vue的 组件通信
Vue 的 父传子 子传父 一.父组件向子组件传值: 父传子 把需要的数据 传递给 子组件,以数据绑定(v-bind)的形式,传递到子组件内部,供子组件使用 缩写是(:) 1.创建子组件,在src/ ...
随机推荐
- MySQL实现免密登录和数据库无法启动问题
1. 进入MySQL安装的文件夹,打开my.ini配置文件,打开方式参考:https://www.cnblogs.com/leslie12956/p/11842956.html 2. 停止MysSQL ...
- sping中 各种注解——@SuppressWarnings注解用法
@SuppressWarnings注解用法 @SuppressWarnings注解主要用在取消一些编译器产生的警告对代码左侧行列的遮挡,有时候这会挡住我们断点调试时打的断点. 如图所示: 这时候我们在 ...
- maven打包 invalid entry size Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.5.14.RELEASE:repackage (default) on project
打包失败,但是不知是具体是什么引起得,使用mvn -e clean package,定位到报错得代码 在定位到代码,打上断点,使用maven 打包debug模式 找到dubbo.properties, ...
- Django2.0——中间件
Django中间件middleware本质是一个类,在请求到返回的中间,类中不同的方法会在指定的时机中被触发.setting.py的变量MIDDLEWARE_CLASSES中的每一个元素都是中间件,且 ...
- shell脚本判断进程是否运行
zzx@zzx120:~$ if ps aux | grep "python"|grep -v grep > /dev/null #$?的值不同 th ...
- share团队冲刺2
团队冲刺第二天 昨天:在网上学习app开发的简单操作代码,实现了简单的输出界面,学会了添加按钮控件. 今天:继续昨天的进度,先进行登陆界面窗口的制作. 问题:目前只能在activity添加简单代码,复 ...
- 微信支付第三方sdk使用
1.引入依赖:(对于依赖冲突自行解决) <dependency> <groupId>com.github.binarywang</groupId> <arti ...
- inception对应参数
- Java之多线程窗口卖票问题(Thread)
/** * * 例子:创建三个窗口卖票,总票数为100张.使用继承Thread类的方式 * * 存在线程的安全问题,待解决. * */class Window extends Thread{ priv ...
- ZJNU 1333 - 第二题 blocks--中高级
因为放一个就需要判断一次,每一次跑一遍全图bfs显然是不现实的 又因为点只有三种,黑白无 所以可以用并查集优化 添加一个棋子就判断周围四个的组别情况 注意出现的情况与答案关系之间的判别 /* Writ ...