<?php
namespace app\common\main;
/**
* 这是一个特征库
* 定义了get调度方法
* 和set设置未定义属性方法用于全局调度 common的资源
*
*
*/
trait Dispatch {
/**
* 魔术方法用于设置未定义的属性
*
*/
function __get($name) {
$namearr=explode("_",$name);
$namearr[0]=mb_strtolower($namearr[0]);
if($namearr[0]=="handle"){
$names="\\app\\common\\handle\\".$namearr[1];
$this->$name=new $names;
}elseif($namearr[0]=="sql"){
return \think\Db::name($namearr[1])->alias(mb_strtolower($namearr[1]));
}elseif($namearr[0]=="model"){
$names="\\app\\common\\model\\".$namearr[1]."Model";
$this->$name=new $names;
}elseif($namearr[0]=="merge"){
$names="\\app\\common\\merge\\".$namearr[1]."Merge";
$this->$name=new $names;
}
return $this->$name;
}
//__set()方法用来设置私有属性
function __set($property_name, $value) {
$this->$property_name = $value;
}
}至于特征怎么继承 百度吧 最佳答案