Yii这套框架整体来说非常灵活,灵活到蛋疼的感觉,整合smarty都对不起框架的设计者,需要在前端模板使用PHP生成大部分组件(导致的结果是没必要招前端了,直接程序员上吧)。
而我们在smarty中习惯使用
$this->assign('name', $var);
这种分步给前端模板赋值的方式同样不适用,因为Yii的赋值是结合在打开模板的方法里面的
$this->render('view',$params);
但有一种折中的方法是在基类定义一个属性来当默认的赋值变量,而我们需要赋值的数组都当做它的数组内容。
private $_params;
publicfunction assign($key,$val){
$this->_params[$key] = $val;
}
publicfunction render($view,$data=null,$return=false)
{
if(!empty($this->_params)){
$data = $data ===null? $this->_params :CMap::mergeArray($this->_params,$data) ;
}
return parent::render($view, $data , $return);
}