CMenu的使用心得
先看代码段:
$this->widget('zii.widgets.CMenu',array( 'items'=>array( array('label'=>'网站概况', 'url'=>array('/admin'),'itemOptions'=>array('class'=>'li_status'),'active'=>$this->id=='admin'?true:false), array('[......]
先看代码段:
$this->widget('zii.widgets.CMenu',array( 'items'=>array( array('label'=>'网站概况', 'url'=>array('/admin'),'itemOptions'=>array('class'=>'li_status'),'active'=>$this->id=='admin'?true:false), array('[......]
YII自带validate.js的验证,但我细读源码,发现其规则主要是提交后返回的,而DWZ整合validate.js是直接在提交时客户端验证,更为方便有效率。
model中定义的rules已经把属性的要求都写清楚,如果再为了validate又在view里手写一次,实在是麻烦,所以我有了写DwzActiveForm的想法。
1、在Yii源码中找到CActiveForm,复制出新的Widget命名DwzActiveForm放在ext.dwz中。
2、自定义一个方法addValidateAttr($mo[……]
在 PHP 界有很多开发框架, yii 是其中一个比较优秀的框架。很多人都说 yii 比较复杂,先上手可以学习 ci 、 cakephp 什么的,其实我倒不这么认为, PHP 现在的框架一般整体的思路都差不多,都号称 MVC 那一套,其实关于是不是 MVC ,怎么个 MVC 法,这个话题太大,坑太深,不谈。其实,也就是说大家抽象的方式都类似,所以如果是要将 PHP 作为工具实用,而非研究,那就还是直接从牛人的肩膀上开始吧。当然,除了 yii 我另外还推荐 Laravel 框架。我个人感觉 php 的框架到[……]
以Blog示例:重点看注释
User类中的relations方法如下
public function relations() { return array( 'posts' => array(self::HAS_MANY, 'Post', 'author_id', 'order'=>'posts.update_time DESC', 'with'=>'comments:approved', // $user =[......]
1,首先多表关联是在models/xx.php的relations里配置的。而且是互配,但有区别。
格式:
'VarName'=>array('RelationType', 'ClassName', 'ForeignKey', ...additional options)
需要弄清楚的几点:
1,VarName指什么? 详见下面例2。
2,RelationType。一共有4种,分别为self::HAS_MANY, self::BELONGS_T[……]
使用了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-&[......]
首先是扩展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()[......]
前段时间为SNS产品做了架构设计,在程序框架方面做了不少相关的压力测试,最终选定了YiiFramework,至于为什么没选用公司内部的PHP框架,其实理由很充分,公司的框架虽然是”前辈”们辛苦的积累,但毕竟不够成熟,没有大型项目的历练,犹如一个涉世未深的年轻小伙。Yii作为一个颇有名气开源产品,必定有很多人在使用,意味着有一批人在维护,而且在这之前,我也使用Yii开发过大型项目,Yii的设计模式和它的易扩展特性足以堪当重任。
SNS同一般的社交产品不同的就是它最终要承受大并发和大数据量的[……]