求助:一个PHP类,怎么才能转成CI类
<?php
class TreeUtil{
public function ToList($tree,$parentId,$childrenField,$idField,$parentIdField,$isList){
$list = array();
for($i=0,$len=count($tree);$i<$len;$i++){
$task = $tree[$i];
$task[$parentIdField] = $parentId;
$children = $task[$childrenField];
if($children != null && count($children) > 0){
$id = $task[$idField] == null ? "" : $task[$idField];
$treeUtil = new TreeUtil();
$list2 = $treeUtil->ToList($children,$id,$childrenField,$idField,$parentIdField);
$list = array_merge($list,$list2);
}
//unset($task[$childrenField]);
array_push($list,$task);
}
//如果传递的数据已经是list,需要删除重复的数据
if($parentId == "-1" && $isList == true){
for($m=0,$l=count($list);$m<$l;$m++){
for($j=$m+1,$s=count($list);$j<$s;$j++){
if($list[$m]["_id"] == $list[$j]["_id"]){
if($list[$m][$idField] == null){
$list[$j][$parentIdField] = $list[$m][$parentIdField];
unset($list[$m]);
}else{
$list[$m][$parentIdField] = $list[$j][$parentIdField];
unset($list[$j]);
}
}
}
}
}
return $list;
}
}
?>
本帖最后由 yuvista 于 2014-1-25 11:09 编辑
改造其实不麻烦:对于不需要传入参数的类来说,CI类和普通类没什么区别。
但是,一般来说,许多类在初始话之前需要传入配置参数,普通类可能会是这样
function __construct($var_a,$var_b,$var_c){
$this->var_1 = $var_a;
$this->var_2 = $var_b;
$this->var_3 = $var_c;
}
但是CI只支持传入一个配置数组,为了能传入多个参数,你可以改造成这个样子
function __construct($config){
$this->var_1 = $config['var_a'];
$this->var_2 = $config['var_b'];
$this->var_3 = $config['var_c'];
}
然后在载入类的时候,你只需要这样就OK了。
$config = array(
'var_a' => $var_a,
'var_b' => $var_b,
'var_c' => $var_c
);
$this->load->library('foo',$config);
暂时就想到这么多,想起来再说。
页:
[1]