HDR

HDR

Yii 多表关联relations

1,首先多表关联是在models/xx.php的relations里配置的。而且是互配,但有区别。

格式:

‘VarName’=>array(‘RelationType’, ‘ClassName’, ‘ForeignKey’, …additional options)

需要弄清楚的几点:

1,VarName指什么? 详见下面例2。

2,RelationType。一共有4种,分别为self::HAS_MANY, self::BELONGS_TO,[……]

阅读全文»

Yii分页的写法

AR写法:
$CDbCriteria = new CDbCriteria();
$CDbCriteria->order = ‘`id` desc’;
$count=MessageModel::model()->count($CDbCriteria);
$pages=new CPagination($count);
$pages->pageSize=8;
$pages->applyLimit($CDbCriteria);
$model = MessageModel::m[……]

阅读全文»

为Yii Blog添加rss功能

使用了Yii的efeed扩展(地址:http://www.yiiframework.com/extension/efeed/)

把文档中的代码修改下放入view:

<?php
Yii::import(‘ext.feed.*’);
$feed = new EFeed(EFeed::ATOM);
$title=$catalog?Yii::app()->name.’ – ‘.$catalog->Label:Yii::app()->name;
$feed->[……]

阅读全文»

为Yii Blog加入”上一篇” “下一篇”功能

首先是扩展Post类,生成两个相应查询

public function nextpost()
{
return self::model()->find(array(‘condition’=>’id>:id’,’params’=>array(‘:id’=>$this->id),’order’=>’t.id ASC’));
}

public function prevpost()
{
return self::model()-&g[……]

阅读全文»

Yii 实现MySQL多库和读写分离

前段时间为SNS产品做了架构设计,在程序框架方面做了不少相关的压力测试,最终选定了YiiFramework,至于为什么没选用公司内部的PHP框架,其实理由很充分,公司的框架虽然是”前辈”们辛苦的积累,但毕竟不够成熟,没有大型项目的历练,犹如一个涉世未深的年轻小伙。Yii作为一个颇有名气开源产品,必定有很多人在使用,意味着有一批人在维护,而且在这之前,我也使用Yii开发过大型项目,Yii的设计模式和它的易扩展特性足以堪当重任。

SNS同一般的社交产品不同的就是它最终要承受大并发和大数据量的考验,[……]

阅读全文»

Yii中的CComponent应用实例

首先我们先了解一下如何创建一个CComponent,手册讲述如下:

CComponent 是所有组件类的基类。

CComponent 实现了定义、使用属性和事件的协议。

属性是通过getter方法或/和setter方法定义。访问属性就像访问普通的对象变量。读取或写入属性将调用应相的getter或setter方法,例如:

$a=$component->text;
// equivalent to $a=$component->getText();
$[……]

阅读全文»

使用YII框架进行PHP程序的计划任务教程

1.当你通过yiic创建一个webapp应用后,

会在webapp/protected/下生成yiic.php, 由于是命令行应用,所以这里的yiic.php其实就是与webapp下的index.php一样的,命令行入口文件。

2.打开yiic文件,添加一行设置,将commands目录的路径添加到yiic中,这样,yiic就能够找到commands目录下的命令文件了,修改后的代码如下,红色为新加入代码:

<?php
// change the following pa[……]

阅读全文»

Yii的事件和行为的区别和应用

关于 Yii 的事件和行为的描述,可参考 http://www.yiiframework.com/doc/api/1.1/CComponent

事件

事件模型就是设计模式中的“观察者模式”:当对象的状态发生了变化,那么这个对象可以将该事件通知其它对象。

为了使用事件模型,需要实现这三个步骤:1、定义事件;2、注册事件句柄;3、触发事件。

为什么要做这三个步骤呢?因为对于 PHP 本身,它的执行过程不是以进程化来运行的,

所以 Yii 的事件触发机[……]

阅读全文»

Yii Framework框架启动加载分析

1.启动

网站的唯一入口程序 index.php :

$yii=dirname(__FILE__).’/../framework/yii.php’;
$config=dirname(__FILE__).’/protected/config/main.php’;

// remove the following line when in production mode
defined(‘YII_DEBUG’) or define(‘YII_DEBUG’,tru[……]

阅读全文»

鄂ICP备13000209号-1

鄂公网安备 42050602000277号