46 lines
1.4 KiB
PHP
46 lines
1.4 KiB
PHP
<?php
|
|
// +----------------------------------------------------------------------
|
|
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
|
|
// +----------------------------------------------------------------------
|
|
// | Copyright (c) 2006~2017 http://thinkphp.cn All rights reserved.
|
|
// +----------------------------------------------------------------------
|
|
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
|
// +----------------------------------------------------------------------
|
|
// | Author: liu21st <liu21st@gmail.com>
|
|
// +----------------------------------------------------------------------
|
|
|
|
namespace traits\think;
|
|
|
|
use think\Exception;
|
|
|
|
trait Instance
|
|
{
|
|
protected static $instance = null;
|
|
|
|
/**
|
|
* @param array $options
|
|
* @return static
|
|
*/
|
|
public static function instance($options = [])
|
|
{
|
|
if (is_null(self::$instance)) {
|
|
self::$instance = new self($options);
|
|
}
|
|
return self::$instance;
|
|
}
|
|
|
|
// 静态调用
|
|
public static function __callStatic($method, $params)
|
|
{
|
|
if (is_null(self::$instance)) {
|
|
self::$instance = new self();
|
|
}
|
|
$call = substr($method, 1);
|
|
if (0 === strpos($method, '_') && is_callable([self::$instance, $call])) {
|
|
return call_user_func_array([self::$instance, $call], $params);
|
|
} else {
|
|
throw new Exception("method not exists:" . $method);
|
|
}
|
|
}
|
|
}
|