看了thinkphp5源碼,然后記錄下這個(gè)php門面模式
<?php
namespace? think;
class facade{
? ? protected static function getFacadeClass()
? ? {}
? // 調(diào)用實(shí)際類的方法
? ? public static function __callStatic($method, $params)
? ? {
? ? ? ? return call_user_func_array(? [static::createFacade(), $method], $params);
? ? }
protected static function createFacade($class = '', $args = [])
? ? {
? ? ? ? $class = $class ?: static::class;? //think\facade\Test
$class=static::getFacadeClass();
//$class='think\\'.$class;
return? new $class;
}
}
namespace? think\facade;
class a? extends \think\facade
{
protected static function getFacadeClass()
? ? {
? ? ? ? return 'think\\a';
? ? }
}
namespace? think;
class a{
public function show()
{
echo? '我是a類,但不是靜態(tài)方法';
}
}
\think\facade\a::show();
?>
標(biāo)簽: