etufo21

etufo21的笔记

来自应用(0)

应用基础目录下的内容应该保护起来防止网站访客直接访问。由 CWebApplication 预定义的核心组件。

来自控制器(0)

CUrlManager::caseSensitive 为 false 使路由对大小写不敏感。 $filterChain (过滤器链)是一个 CFilterChain 的实例,代表与所请求动作相关的过滤器列表。调用 $filterChain->run() 以继续执行后续过滤器和动作。 要对动作应用过滤器,我们需要覆盖 CController::filters() 方法。此方法应返回一个过滤器配置数组。

来自模型(0)

表单模型用于保持从用户的输入获取的数据。Active Record (AR) 是一种用于通过面向对象的风格抽象化数据库访问的设计模式。

来自视图(0)

在视图脚本内部,我们可以通过 $this 来访问控制器实例.我们可以在视图里以 $this->propertyName 的方式 拉取 控制器的任何属性.

来自组件(0)

组件事件以 on 开头的命名方式定义。要使用一个行为,它必须首先通过调用此行为的 attach() 方法绑定到一个组件。然后我们就可以通过组件调用此行为方法:

来自开发规范(0)

Yii 识别如下格式的 URL:http://hostname/index.php?r=ControllerID/ActionID对私有类成员变量来说,我们推荐以下划线作为其名字前缀控制器名字的特殊规则是它们必须以单词 Controller 结尾

来自第二章:入门(0)

一个典型Yii的Web应用程序是等待用户通过浏览器传入一个请求后,解析该请求的信息,去查找一个对应的控制器,然后调用该控制器内的操作方法。 yiic webapp democd demoyiic shellhelphelp controllercontroller message helloworld添加动态内容最简单的方法,就是在视图模板文件中嵌入PHP语句。业务逻辑与视图分离两种在PHP视图模板中生成内容的方法:1.把数据逻辑直接在视图文件中创建。2.把数据逻辑放到控制器中,然后提供给视图一个可用变量。第二个办法将业务逻辑的数据与视图分开。视图文件中的$this指的就是渲染这个视图的控制器。视图文件名不必与ActionID相同,只需要将文件的名字作为第一个参数传递给render()就可以了。调用CHtml的link方法,link方法需要一个参数是 controllerID/actionID 成对出现的字符串,另一个超连接显示的名字。应用程序页面连接在一起:1.在视图文件中添加HTML的标签以硬编码方法书写URL结构。2.使用Yii的CHtml助手,帮助你建立controllerID/actionID格式的URL地址,这样格式的结构,将始终与应用程序的配置关联,即使整个应用程序的URL地址改变了,我们也不用去修改内部的URL,从而保证了应用程序内部的链接不失效。

来自第三章:TrackStar应用程序(0)

现代的软件开发中,'Agile'(敏捷)是一个经常提到名词设计(design)->编码 (code)->测试(test)->评价(evaluation),遵遁这个规则,直到每个人都很满意。先写你的测试代码并在书写过程中再编写代码以保证最佳的测试覆盖率。我们将我们的测试文件放到这个主要目录:fixtures,functional,unit。这些报告文件夹用于存储生成的代码覆盖率的报告。

来自第五章:迭代2:项目(project)的CRUD(0)

    在Yii中为了采用表前缀支持,必须设置CDbConnection::tablePrefix属性为期望的表前缀。可以使用{{TableName}}做为参考表名,其中TableName就是表的名称,但不用前缀。提供足够的测试可使代码质量提高,但很显然测试应用程序中的每一行代码可能有些夸张。 一般的经验规则是,不要为外部库编写测试代码rules()方法返回的是一个规则数组,一般每一个规则格式如下所示:Array('Attribute List(属性列表)', 'Validator(验证器)', 'on'=>'Scenario List', …additional options);on这个参数指定了一个scenario(情景)列表来使用这条验证规则。scenario(情景)允许你限制验证规则应用在特定的上下文中。一种典型的例子是insert(插入)或update(更新)。例如:如果被指定为 'on'=>'insert',这将表明验证规则只适用于模型的插入情景。如果这里没有设置,该规则将适用于调用save()方法的所有情景。 三种方法可以指定validator(验证器)1.在模型类中定义验证方法public functionValidatorName($attribute,$params) { ... }2.指定一个单独的验证器类3.使用Yii框架中现有的验证器,指定预定义的验证器别名即可。

来自第六章:迭代3:添加任务(Task)(0)

没看 让测试进入“红色区” 到 添加问题(Issue)类型下拉选择框 生成数据来填充下拉菜单CActiveForm是一个助手类,提供了一组方法帮助我们创建一个与数据模型类关联的数据输入表单。CActiveForm::labelEx()为问题(Issue)模型的一个属性type_id生成一个HTML标签。CActiveForm类有一个dropDownList()方法,可以根据模型属性生成一个下来列表。Yii中的过滤器是指,通过配置,在一个控制器的动作被执行之前或者之后执行的一小段代码。1.一个普遍的例子就是,当我们要求执行某个特定的控制器动作之前,用户必须已经登录,那么可以写一个简单的访问过滤器在这个动作执行之前来检查这个要求。2.如果我们想要在某个动作执行后额外记录些什么,或者执行一些审核逻辑,可以编写一个简单的审计过滤器来进行这个动作之后的处理任务。

来自第七章:迭代4:用户管理和权限认证(0)

没看 使用了CDbExpression来设置新建和更新时间的值为Unix时间戳1.mysql $this->update_time = new CDbExpression('NOW()');2.php $this->createTime=$this- >updateTime=date( 'Y-m-d H:i:s', time() ); Yii的另外一个内部验证器(CCompareValidator)添加一个新输入框来强制用户确认他输入的密码。 

来自第八章:迭代5:用户访问控制(0)

没看运行已存在的测试套件、 看到 编写控制台应用程序命令*:任何用户?:匿名用户@:登录用户/认证用户访问规则按照其被申明的顺序一条一条的被评估。Yii提供了2类授权管理器:CPhpAuthManager和 CDbAuthManager.phpAuthManager使用PHP脚本文件储存授权信息。CDbAuthManager使用数据库储存授权信息。