在接口中的静态方法来获取model的实例对象
直接先上代码:
接口代码
abstract class BaseModel { /** * @var null */ protected static $_instances = Array(); /** * 获取实例 * @return BaseModel $this */ public static function getInstance() { $className = get_called_class(); //验证实例数组内是否有该实例 if (empty(self::$_instances[$className])) { self::$_instances[$className] = new static(); } //返回实例 return self::$_instances[$className]; } }
然后所有的model都集成此接口即可。
比如:
class UserModel extends BaseModel { public function getUser($uid) { return $uid; } }
然后在控制器中使用:
$uid = 1; $res = User::getInstance()->getUser($uid);