App

/**
 * 执行应用程序
 * @access public
 * @param Request $request Request对象
 * @return Response
 * @throws Exception
 */
App::run($request = NULL)


/**
 * 设置当前请求的调度信息
 * @access public
 * @param array|string  $dispatch 调度信息
 * @param string$type 调度类型
 * @return void
 */
App::dispatch($dispatch, $type = 'module')


/**
 * 执行函数或者闭包方法 支持参数调用
 * @access public
 * @param string|array|\Closure $function 函数或者闭包
 * @param array $vars 变量
 * @return mixed
 */
App::invokeFunction($function, $vars = [])


/**
 * 调用反射执行类的方法 支持参数绑定
 * @access public
 * @param string|array $method 方法
 * @param array$vars   变量
 * @return mixed
 */
App::invokeMethod($method, $vars = [])


/**
 * 调用反射执行类的实例化 支持依赖注入
 * @access public
 * @param string$class 类名
 * @param array $vars  变量
 * @return mixed
 */
App::invokeClass($class, $vars = [])


/**
 * 绑定参数
 * @access private
 * @param \ReflectionMethod|\ReflectionFunction $reflect 反射类
 * @param array $vars变量
 * @return array
 */
self::bindParams($reflect, $vars = [])


/**
 * 获取参数值
 * @access private
 * @param \ReflectionParameter  $param
 * @param array $vars变量
 * @param string$type
 * @return array
 */
self::getParamValue($param, &$vars, $type)



self::exec($dispatch, $config)


/**
 * 执行模块
 * @access public
 * @param array $result 模块/控制器/操作
 * @param array $config 配置参数
 * @param bool  $convert 是否自动转换控制器和操作名
 * @return mixed
 */
App::module($result, $config, $convert = NULL)


/**
 * 初始化应用
 */
App::initCommon()


/**
 * 初始化应用或模块
 * @access public
 * @param string $module 模块名
 * @return array
 */
self::init($module = '')


/**
 * URL路由检测(根据PATH_INFO)
 * @access public
 * @param  \think\Request $request
 * @param  array  $config
 * @return array
 * @throws \think\Exception
 */
App::routeCheck($request, $config)


/**
 * 设置应用的路由检测机制
 * @access public
 * @param  bool $route 是否需要检测路由
 * @param  bool $must  是否强制检测路由
 * @return void
 */
App::route($route, $must = false)

Build

/**
 * 根据传入的build资料创建目录和文件
 * @access protected
 * @param  array  $build build列表
 * @param  string $namespace 应用类库命名空间
 * @param  bool   $suffix 类库后缀
 * @return void
 */
Build::run($build = [], $namespace = 'app', $suffix = false)


/**
 * 创建目录
 * @access protected
 * @param  array $list 目录列表
 * @return void
 */
self::buildDir($list)


/**
 * 创建文件
 * @access protected
 * @param  array $list 文件列表
 * @return void
 */
self::buildFile($list)


/**
 * 创建模块
 * @access public
 * @param  string $module 模块名
 * @param  array  $list build列表
 * @param  string $namespace 应用类库命名空间
 * @param  bool   $suffix 类库后缀
 * @return void
 */
Build::module($module = '', $list = [], $namespace = 'app', $suffix = false)


/**
 * 创建模块的欢迎页面
 * @access public
 * @param  string $module 模块名
 * @param  string $namespace 应用类库命名空间
 * @param  bool   $suffix 类库后缀
 * @return void
 */
self::buildHello($module, $namespace, $suffix = false)


/**
 * 创建模块的公共文件
 * @access public
 * @param  string $module 模块名
 * @return void
 */
self::buildCommon($module)

Cache

/**
 * 连接缓存
 * @access public
 * @param array $options  配置数组
 * @param bool|string   $name 缓存连接标识 true 强制重新连接
 * @return Driver
 */
Cache::connect($options = [], $name = false)


/**
 * 自动初始化缓存
 * @access public
 * @param array $options  配置数组
 * @return Driver
 */
Cache::init($options = [])


/**
 * 切换缓存类型 需要配置 cache.type 为 complex
 * @access public
 * @param string $name 缓存标识
 * @return Driver
 */
Cache::store($name = '')


/**
 * 判断缓存是否存在
 * @access public
 * @param string $name 缓存变量名
 * @return bool
 */
Cache::has($name)


/**
 * 读取缓存
 * @access public
 * @param string $name 缓存标识
 * @param mixed  $default 默认值
 * @return mixed
 */
Cache::get($name, $default = false)


/**
 * 写入缓存
 * @access public
 * @param string$name 缓存标识
 * @param mixed $value  存储数据
 * @param int|null  $expire  有效时间 0为永久
 * @return boolean
 */
Cache::set($name, $value, $expire = NULL)


/**
 * 自增缓存(针对数值缓存)
 * @access public
 * @param string$name 缓存变量名
 * @param int   $step 步长
 * @return false|int
 */
Cache::inc($name, $step = 1)


/**
 * 自减缓存(针对数值缓存)
 * @access public
 * @param string$name 缓存变量名
 * @param int   $step 步长
 * @return false|int
 */
Cache::dec($name, $step = 1)


/**
 * 删除缓存
 * @access public
 * @param string$name 缓存标识
 * @return boolean
 */
Cache::rm($name)


/**
 * 清除缓存
 * @access public
 * @param string $tag 标签名
 * @return boolean
 */
Cache::clear($tag = NULL)


/**
 * 读取缓存并删除
 * @access public
 * @param string $name 缓存变量名
 * @return mixed
 */
Cache::pull($name)


/**
 * 如果不存在则写入缓存
 * @access public
 * @param string$name 缓存变量名
 * @param mixed $value  存储数据
 * @param int   $expire  有效时间 0为永久
 * @return mixed
 */
Cache::remember($name, $value, $expire = NULL)


/**
 * 缓存标签
 * @access public
 * @param string$name 标签名
 * @param string|array  $keys 缓存标识
 * @param bool  $overlay 是否覆盖
 * @return Driver
 */
Cache::tag($name, $keys = NULL, $overlay = false)

Collection

$Collection = new Collection();


Collection::make($items = [])


/**
 * 是否为空
 * @return bool
 */
Collection->isEmpty()



Collection->toArray()



Collection->all()


/**
 * 合并数组
 *
 * @param  mixed $items
 * @return static
 */
Collection->merge($items)


/**
 * 比较数组,返回差集
 *
 * @param  mixed $items
 * @return static
 */
Collection->diff($items)


/**
 * 交换数组中的键和值
 *
 * @return static
 */
Collection->flip()


/**
 * 比较数组,返回交集
 *
 * @param  mixed $items
 * @return static
 */
Collection->intersect($items)


/**
 * 返回数组中所有的键名
 *
 * @return static
 */
Collection->keys()


/**
 * 删除数组的最后一个元素(出栈)
 *
 * @return mixed
 */
Collection->pop()


/**
 * 通过使用用户自定义函数,以字符串返回数组
 *
 * @param  callable $callback
 * @param  mixed$initial
 * @return mixed
 */
Collection->reduce($callback, $initial = NULL)


/**
 * 以相反的顺序返回数组。
 *
 * @return static
 */
Collection->reverse()


/**
 * 删除数组中首个元素,并返回被删除元素的值
 *
 * @return mixed
 */
Collection->shift()


/**
 * 把一个数组分割为新的数组块.
 *
 * @param  int  $size
 * @param  bool $preserveKeys
 * @return static
 */
Collection->chunk($size, $preserveKeys = false)


/**
 * 在数组开头插入一个元素
 * @param mixed $value
 * @param null  $key
 * @return int
 */
Collection->unshift($value, $key = NULL)


/**
 * 给每个元素执行个回调
 *
 * @param  callable $callback
 * @return $this
 */
Collection->each($callback)


/**
 * 用回调函数过滤数组中的元素
 * @param callable|null $callback
 * @return static
 */
Collection->filter($callback = NULL)


/**
 * 返回数组中指定的一列
 * @param  $column_key
 * @param null $index_key
 * @return array
 */
Collection->column($column_key, $index_key = NULL)


/**
 * 对数组排序
 *
 * @param  callable|null $callback
 * @return static
 */
Collection->sort($callback = NULL)


/**
 * 将数组打乱
 *
 * @return static
 */
Collection->shuffle()


/**
 * 截取数组
 *
 * @param  int  $offset
 * @param  int  $length
 * @param  bool $preserveKeys
 * @return static
 */
Collection->slice($offset, $length = NULL, $preserveKeys = false)



Collection->offsetExists($offset)



Collection->offsetGet($offset)



Collection->offsetSet($offset, $value)



Collection->offsetUnset($offset)



Collection->count()



Collection->getIterator()



Collection->jsonSerialize()


/**
 * 转换当前数据集为JSON字符串
 * @access public
 * @param integer $options json参数
 * @return string
 */
Collection->toJson($options = 256)



Collection->__toString()


/**
 * 转换成数组
 *
 * @param  mixed $items
 * @return array
 */
$this->convertToArray($items)

Config

Config::range($range)


/**
 * 解析配置文件或内容
 * @param string$config 配置文件路径或内容
 * @param string$type 配置解析类型
 * @param string$name 配置名(如设置即表示二级配置)
 * @param string$range  作用域
 * @return mixed
 */
Config::parse($config, $type = '', $name = '', $range = '')


/**
 * 加载配置文件(PHP格式)
 * @param string$file 配置文件名
 * @param string$name 配置名(如设置即表示二级配置)
 * @param string$range  作用域
 * @return mixed
 */
Config::load($file, $name = '', $range = '')


/**
 * 检测配置是否存在
 * @param string$name 配置参数名(支持二级配置 .号分割)
 * @param string$range  作用域
 * @return bool
 */
Config::has($name, $range = '')


/**
 * 获取配置参数 为空则获取所有配置
 * @param string$name 配置参数名(支持二级配置 .号分割)
 * @param string$range  作用域
 * @return mixed
 */
Config::get($name = NULL, $range = '')


/**
 * 设置配置参数 name为数组则为批量设置
 * @param string|array  $name 配置参数名(支持二级配置 .号分割)
 * @param mixed $value 配置值
 * @param string$range  作用域
 * @return mixed
 */
Config::set($name, $value = NULL, $range = '')


/**
 * 重置配置参数
 */
Config::reset($range = '')

Console

$Console = new Console();


Console::init($run = true)


/**
 * @param$command
 * @param array  $parameters
 * @param string $driver
 * @return Output|Buffer
 */
Console::call($command, $parameters = [], $driver = 'buffer')


/**
 * 执行当前的指令
 * @return int
 * @throws \Exception
 * @api
 */
Console->run()


/**
 * 执行指令
 * @param Input  $input
 * @param Output $output
 * @return int
 */
Console->doRun($input, $output)


/**
 * 设置输入参数定义
 * @param InputDefinition $definition
 */
Console->setDefinition($definition)


/**
 * 获取输入参数定义
 * @return InputDefinition The InputDefinition instance
 */
Console->getDefinition()


/**
 * Gets the help message.
 * @return string A help message.
 */
Console->getHelp()


/**
 * 是否捕获异常
 * @param bool $boolean
 * @api
 */
Console->setCatchExceptions($boolean)


/**
 * 是否自动退出
 * @param bool $boolean
 * @api
 */
Console->setAutoExit($boolean)


/**
 * 获取名称
 * @return string
 */
Console->getName()


/**
 * 设置名称
 * @param string $name
 */
Console->setName($name)


/**
 * 获取版本
 * @return string
 * @api
 */
Console->getVersion()


/**
 * 设置版本
 * @param string $version
 */
Console->setVersion($version)


/**
 * 获取完整的版本号
 * @return string
 */
Console->getLongVersion()


/**
 * 注册一个指令
 * @param string $name
 * @return Command
 */
Console->register($name)


/**
 * 添加指令
 * @param Command[] $commands
 */
Console->addCommands($commands)


/**
 * 添加一个指令
 * @param Command $command
 * @return Command
 */
Console->add($command)


/**
 * 获取指令
 * @param string $name 指令名称
 * @return Command
 * @throws \InvalidArgumentException
 */
Console->get($name)


/**
 * 某个指令是否存在
 * @param string $name 指令名称
 * @return bool
 */
Console->has($name)


/**
 * 获取所有的命名空间
 * @return array
 */
Console->getNamespaces()


/**
 * 查找注册命名空间中的名称或缩写。
 * @param string $namespace
 * @return string
 * @throws \InvalidArgumentException
 */
Console->findNamespace($namespace)


/**
 * 查找指令
 * @param string $name 名称或者别名
 * @return Command
 * @throws \InvalidArgumentException
 */
Console->find($name)


/**
 * 获取所有的指令
 * @param string $namespace 命名空间
 * @return Command[]
 * @api
 */
Console->all($namespace = NULL)


/**
 * 获取可能的指令名
 * @param array $names
 * @return array
 */
Console::getAbbreviations($names)


/**
 * 配置基于用户的参数和选项的输入和输出实例。
 * @param Input  $input  输入实例
 * @param Output $output 输出实例
 */
$this->configureIO($input, $output)


/**
 * 执行指令
 * @param Command $command 指令实例
 * @param Input   $input   输入实例
 * @param Output  $output  输出实例
 * @return int
 * @throws \Exception
 */
$this->doRunCommand($command, $input, $output)


/**
 * 获取指令的基础名称
 * @param Input $input
 * @return string
 */
$this->getCommandName($input)


/**
 * 获取默认输入定义
 * @return InputDefinition
 */
$this->getDefaultInputDefinition()


/**
 * 设置默认命令
 * @return Command[] An array of default Command instances
 */
$this->getDefaultCommands()



Console::addDefaultCommands($classnames)


/**
 * 获取可能的建议
 * @param array $abbrevs
 * @return string
 */
$this->getAbbreviationSuggestions($abbrevs)


/**
 * 返回命名空间部分
 * @param string $name  指令
 * @param string $limit 部分的命名空间的最大数量
 * @return string
 */
Console->extractNamespace($name, $limit = NULL)


/**
 * 查找可替代的建议
 * @param string $name
 * @param array|\Traversable $collection
 * @return array
 */
$this->findAlternatives($name, $collection)


/**
 * 设置默认的指令
 * @param string $commandName The Command name
 */
Console->setDefaultCommand($commandName)


/**
 * 返回所有的命名空间
 * @param string $name
 * @return array
 */
$this->extractAllNamespaces($name)

Controller

$Controller = new Controller();


$this->_initialize()


/**
 * 前置操作
 * @access protected
 * @param string $method  前置操作方法名
 * @param array  $options 调用参数 ['only'=>[...]] 或者['except'=>[...]]
 */
$this->beforeAction($method, $options = [])


/**
 * 加载模板输出
 * @access protected
 * @param string $template 模板文件名
 * @param array  $vars 模板输出变量
 * @param array  $replace  模板替换
 * @param array  $config   模板参数
 * @return mixed
 */
$this->fetch($template = '', $vars = [], $replace = [], $config = [])


/**
 * 渲染内容输出
 * @access protected
 * @param string $content 模板内容
 * @param array  $vars模板输出变量
 * @param array  $replace 替换内容
 * @param array  $config  模板参数
 * @return mixed
 */
$this->display($content = '', $vars = [], $replace = [], $config = [])


/**
 * 模板变量赋值
 * @access protected
 * @param mixed $name  要显示的模板变量
 * @param mixed $value 变量的值
 * @return void
 */
$this->assign($name, $value = '')


/**
 * 初始化模板引擎
 * @access protected
 * @param array|string $engine 引擎参数
 * @return void
 */
$this->engine($engine)


/**
 * 设置验证失败后是否抛出异常
 * @access protected
 * @param bool $fail 是否抛出异常
 * @return $this
 */
$this->validateFailException($fail = true)


/**
 * 验证数据
 * @access protected
 * @param array$data 数据
 * @param string|array $validate 验证器名或者验证规则数组
 * @param array$message  提示信息
 * @param bool $batch是否批量验证
 * @param mixed$callback 回调方法(闭包)
 * @return array|string|true
 * @throws ValidateException
 */
$this->validate($data, $validate, $message = [], $batch = false, $callback = NULL)


/**
 * 操作成功跳转的快捷方法
 * @access protected
 * @param mixed $msg 提示信息
 * @param string$url 跳转的URL地址
 * @param mixed $data 返回的数据
 * @param integer   $wait 跳转等待时间
 * @param array $header 发送的Header信息
 * @return void
 */
$this->success($msg = '', $url = NULL, $data = '', $wait = 3, $header = [])


/**
 * 操作错误跳转的快捷方法
 * @access protected
 * @param mixed $msg 提示信息
 * @param string$url 跳转的URL地址
 * @param mixed $data 返回的数据
 * @param integer   $wait 跳转等待时间
 * @param array $header 发送的Header信息
 * @return void
 */
$this->error($msg = '', $url = NULL, $data = '', $wait = 3, $header = [])


/**
 * 返回封装后的API数据到客户端
 * @access protected
 * @param mixed $data 要返回的数据
 * @param integer   $code 返回的code
 * @param mixed $msg 提示信息
 * @param string$type 返回数据格式
 * @param array $header 发送的Header信息
 * @return void
 */
$this->result($data, $code = 0, $msg = '', $type = '', $header = [])


/**
 * URL重定向
 * @access protected
 * @param string $url 跳转的URL表达式
 * @param array|integer  $params 其它URL参数
 * @param integer$code http code
 * @param array  $with 隐式传参
 * @return void
 */
$this->redirect($url, $params = [], $code = 302, $with = [])


/**
 * 获取当前的response 输出类型
 * @access protected
 * @return string
 */
$this->getResponseType()

Cookie

/**
 * Cookie初始化
 * @param array $config
 * @return void
 */
Cookie::init($config = [])


/**
 * 设置或者获取cookie作用域(前缀)
 * @param string $prefix
 * @return string|void
 */
Cookie::prefix($prefix = '')


/**
 * Cookie 设置、获取、删除
 *
 * @param string $name  cookie名称
 * @param mixed  $value cookie值
 * @param mixed  $option 可选参数 可能会是 null|integer|string
 *
 * @return mixed
 * @internal param mixed $options cookie参数
 */
Cookie::set($name, $value = '', $option = NULL)


/**
 * 永久保存Cookie数据
 * @param string $name  cookie名称
 * @param mixed  $value cookie值
 * @param mixed  $option 可选参数 可能会是 null|integer|string
 * @return void
 */
Cookie::forever($name, $value = '', $option = NULL)


/**
 * 判断Cookie数据
 * @param string$name cookie名称
 * @param string|null   $prefix cookie前缀
 * @return bool
 */
Cookie::has($name, $prefix = NULL)


/**
 * Cookie获取
 * @param string$name cookie名称
 * @param string|null   $prefix cookie前缀
 * @return mixed
 */
Cookie::get($name = '', $prefix = NULL)


/**
 * Cookie删除
 * @param string$name cookie名称
 * @param string|null   $prefix cookie前缀
 * @return mixed
 */
Cookie::delete($name, $prefix = NULL)


/**
 * Cookie清空
 * @param string|null $prefix cookie前缀
 * @return mixed
 */
Cookie::clear($prefix = NULL)



self::jsonFormatProtect(&$val, $key, $type = 'encode')

Db

/**
 * 数据库初始化 并取得数据库类实例
 * @static
 * @access public
 * @param mixed $config 连接配置
 * @param bool|string   $name 连接标识 true 强制重新连接
 * @return Connection
 * @throws Exception
 */
Db::connect($config = [], $name = false)


/**
 * 数据库连接参数解析
 * @static
 * @access private
 * @param mixed $config
 * @return array
 */
self::parseConfig($config)


/**
 * DSN解析
 * 格式: mysql://username:passwd@localhost:3306/DbName?param1=val1¶m2=val2#utf8
 * @static
 * @access private
 * @param string $dsnStr
 * @return array
 */
self::parseDsn($dsnStr)



Db::__callStatic($method, $params)

Debug

/**
 * 记录时间(微秒)和内存使用情况
 * @param string$name 标记位置
 * @param mixed $value 标记值 留空则取当前 time 表示仅记录时间 否则同时记录时间和内存
 * @return mixed
 */
Debug::remark($name, $value = '')


/**
 * 统计某个区间的时间(微秒)使用情况
 * @param string$start 开始标签
 * @param string$end 结束标签
 * @param integer|string$dec 小数位
 * @return integer
 */
Debug::getRangeTime($start, $end, $dec = 6)


/**
 * 统计从开始到统计时的时间(微秒)使用情况
 * @param integer|string $dec 小数位
 * @return integer
 */
Debug::getUseTime($dec = 6)


/**
 * 获取当前访问的吞吐率情况
 * @return string
 */
Debug::getThroughputRate()


/**
 * 记录区间的内存使用情况
 * @param string$start 开始标签
 * @param string$end 结束标签
 * @param integer|string$dec 小数位
 * @return string
 */
Debug::getRangeMem($start, $end, $dec = 2)


/**
 * 统计从开始到统计时的内存使用情况
 * @param integer|string $dec 小数位
 * @return string
 */
Debug::getUseMem($dec = 2)


/**
 * 统计区间的内存峰值情况
 * @param string$start 开始标签
 * @param string$end 结束标签
 * @param integer|string$dec 小数位
 * @return mixed
 */
Debug::getMemPeak($start, $end, $dec = 2)


/**
 * 获取文件加载信息
 * @param bool  $detail 是否显示详细
 * @return integer|array
 */
Debug::getFile($detail = false)


/**
 * 浏览器友好的变量输出
 * @param mixed $var 变量
 * @param boolean   $echo 是否输出 默认为true 如果为false 则返回输出字符串
 * @param string$label 标签 默认为空
 * @param integer   $flags htmlspecialchars flags
 * @return void|string
 */
Debug::dump($var, $echo = true, $label = NULL, $flags = 8)



Debug::inject($response, &$content)

Env

/**
 * 获取环境变量值
 * @param string$name 环境变量名(支持二级 .号分割)
 * @param string$default  默认值
 * @return mixed
 */
Env::get($name, $default = NULL)

Error

/**
 * 注册异常处理
 * @return void
 */
Error::register()


/**
 * Exception Handler
 * @param  \Exception|\Throwable $e
 */
Error::appException($e)


/**
 * Error Handler
 * @param  integer $errno   错误编号
 * @param  integer $errstr  详细错误信息
 * @param  string  $errfile 出错的文件
 * @param  integer $errline 出错行号
 * @param array$errcontext
 * @throws ErrorException
 */
Error::appError($errno, $errstr, $errfile = '', $errline = 0, $errcontext = [])


/**
 * Shutdown Handler
 */
Error::appShutdown()


/**
 * 确定错误类型是否致命
 *
 * @param  int $type
 * @return bool
 */
self::isFatal($type)


/**
 * Get an instance of the exception handler.
 *
 * @return Handle
 */
Error::getExceptionHandler()

Exception

$Exception = new Exception();

/**
 * 设置异常额外的Debug数据
 * 数据将会显示为下面的格式
 *
 * Exception Data
 * --------------------------------------------------
 * Label 1
 *   key1  value1
 *   key2  value2
 * Label 2
 *   key1  value1
 *   key2  value2
 *
 * @param string $label 数据分类,用于异常页面显示
 * @param array  $data  需要显示的数据,必须为关联数组
 */
$this->setData($label, $data)


/**
 * 获取异常额外Debug数据
 * 主要用于输出到异常页面便于调试
 * @return array 由setData设置的Debug数据
 */
Exception->getData()



$this->__clone()



Exception->__wakeup()



Exception->getMessage()



Exception->getCode()



Exception->getFile()



Exception->getLine()



Exception->getTrace()



Exception->getPrevious()



Exception->getTraceAsString()



Exception->__toString()

File

$File = new File();

/**
 * 是否测试
 * @param  bool   $test 是否测试
 * @return $this
 */
File->isTest($test = false)


/**
 * 设置上传信息
 * @param  array   $info 上传文件信息
 * @return $this
 */
File->setUploadInfo($info)


/**
 * 获取上传文件的信息
 * @param  string   $name
 * @return array|string
 */
File->getInfo($name = '')


/**
 * 获取上传文件的文件名
 * @return string
 */
File->getSaveName()


/**
 * 设置上传文件的保存文件名
 * @param  string   $saveName
 * @return $this
 */
File->setSaveName($saveName)


/**
 * 获取文件的哈希散列值
 * @return $string
 */
File->hash($type = 'sha1')


/**
 * 检查目录是否可写
 * @param  string   $path目录
 * @return boolean
 */
$this->checkPath($path)


/**
 * 获取文件类型信息
 * @return string
 */
File->getMime()


/**
 * 设置文件的命名规则
 * @param  string   $rule文件命名规则
 * @return $this
 */
File->rule($rule)


/**
 * 设置上传文件的验证规则
 * @param  array   $rule验证规则
 * @return $this
 */
File->validate($rule = [])


/**
 * 检测是否合法的上传文件
 * @return bool
 */
File->isValid()


/**
 * 检测上传文件
 * @param  array   $rule验证规则
 * @return bool
 */
File->check($rule = [])


/**
 * 检测上传文件后缀
 * @param  array|string   $ext允许后缀
 * @return bool
 */
File->checkExt($ext)


/**
 * 检测图像文件
 * @return bool
 */
File->checkImg()



$this->getImageType($image)


/**
 * 检测上传文件大小
 * @param  integer   $size最大大小
 * @return bool
 */
File->checkSize($size)


/**
 * 检测上传文件类型
 * @param  array|string   $mime允许类型
 * @return bool
 */
File->checkMime($mime)


/**
 * 移动文件
 * @param  string   $path保存路径
 * @param  string|bool  $savename保存的文件名 默认自动生成
 * @param  boolean  $replace 同名文件是否覆盖
 * @return false|File false-失败 否则返回File实例
 */
File->move($path, $savename = true, $replace = true)


/**
 * 获取保存文件名
 * @param  string|bool   $savename保存的文件名 默认自动生成
 * @return string
 */
$this->buildSaveName($savename)


/**
 * 获取错误代码信息
 * @param int $errorNo  错误号
 */
$this->error($errorNo)


/**
 * 获取错误信息
 * @return mixed
 */
File->getError()



File->__call($method, $args)



File->rewind()



File->eof()



File->valid()



File->fgets()



File->fgetcsv($delimiter, $enclosure, $escape)



File->fputcsv($fields, $delimiter, $enclosure, $escape)



File->setCsvControl($delimiter, $enclosure, $escape)



File->getCsvControl()



File->flock($operation, &$wouldblock)



File->fflush()



File->ftell()



File->fseek($pos, $whence)



File->fgetc()



File->fpassthru()



File->fgetss($allowable_tags)



File->fscanf($format, &$vars)



File->fwrite($str, $length)



File->fread($length)



File->fstat()



File->ftruncate($size)



File->current()



File->key()



File->next()



File->setFlags($flags)



File->getFlags()



File->setMaxLineLen($max_len)



File->getMaxLineLen()



File->hasChildren()



File->getChildren()



File->seek($line_pos)



File->getCurrentLine()



File->__toString()



File->getPath()



File->getFilename()



File->getExtension()



File->getBasename($suffix)



File->getPathname()



File->getPerms()



File->getInode()



File->getSize()



File->getOwner()



File->getGroup()



File->getATime()



File->getMTime()



File->getCTime()



File->getType()



File->isWritable()



File->isReadable()



File->isExecutable()



File->isFile()



File->isDir()



File->isLink()



File->getLinkTarget()



File->getRealPath()



File->getFileInfo($class_name)



File->getPathInfo($class_name)



File->openFile($open_mode, $use_include_path, $context)



File->setFileClass($class_name)



File->setInfoClass($class_name)



File->_bad_state_ex()

Hook

/**
 * 动态添加行为扩展到某个标签
 * @param string$tag 标签名称
 * @param mixed $behavior 行为名称
 * @param bool  $first 是否放到开头执行
 * @return void
 */
Hook::add($tag, $behavior, $first = false)


/**
 * 批量导入插件
 * @param array$tags 插件信息
 * @param boolean $recursive 是否递归合并
 */
Hook::import($tags, $recursive = true)


/**
 * 获取插件信息
 * @param string $tag 插件位置 留空获取全部
 * @return array
 */
Hook::get($tag = '')


/**
 * 监听标签的行为
 * @param string $tag标签名称
 * @param mixed  $params 传入参数
 * @param mixed  $extra  额外参数
 * @param bool   $once   只获取一个有效返回值
 * @return mixed
 */
Hook::listen($tag, &$params = NULL, $extra = NULL, $once = false)


/**
 * 执行某个行为
 * @param mixed $class 要执行的行为
 * @param string$tag 方法名(标签名)
 * @param Mixed $params 传人的参数
 * @param mixed $extra 额外参数
 * @return mixed
 */
Hook::exec($class, $tag = '', &$params = NULL, $extra = NULL)

Lang

Lang::range($range = '')


/**
 * 设置语言定义(不区分大小写)
 * @param string|array  $name 语言变量
 * @param string$value 语言值
 * @param string$range 语言作用域
 * @return mixed
 */
Lang::set($name, $value = NULL, $range = '')


/**
 * 加载语言定义(不区分大小写)
 * @param string $file 语言文件
 * @param string $range 语言作用域
 * @return mixed
 */
Lang::load($file, $range = '')


/**
 * 获取语言定义(不区分大小写)
 * @param string|null   $name 语言变量
 * @param string$range 语言作用域
 * @return mixed
 */
Lang::has($name, $range = '')


/**
 * 获取语言定义(不区分大小写)
 * @param string|null   $name 语言变量
 * @param array $vars 变量替换
 * @param string$range 语言作用域
 * @return mixed
 */
Lang::get($name = NULL, $vars = [], $range = '')


/**
 * 自动侦测设置获取语言选择
 * @return string
 */
Lang::detect()


/**
 * 设置语言自动侦测的变量
 * @param string $var 变量名称
 * @return void
 */
Lang::setLangDetectVar($var)


/**
 * 设置语言的cookie保存变量
 * @param string $var 变量名称
 * @return void
 */
Lang::setLangCookieVar($var)


/**
 * 设置语言的cookie的过期时间
 * @param string $expire 过期时间
 * @return void
 */
Lang::setLangCookieExpire($expire)


/**
 * 设置允许的语言列表
 * @param array $list 语言列表
 * @return void
 */
Lang::setAllowLangList($list)

Loader

Loader::autoload($class)


/**
 * 查找文件
 * @param $class
 * @return bool
 */
self::findFile($class)



Loader::addClassMap($class, $map = '')



Loader::addNamespace($namespace, $path = '')



self::addPsr0($prefix, $paths, $prepend = false)



self::addPsr4($prefix, $paths, $prepend = false)



Loader::addNamespaceAlias($namespace, $original = '')



Loader::register($autoload = '')



self::registerComposerLoader()


/**
 * 导入所需的类库 同java的Import 本函数有缓存功能
 * @param string $class   类库命名空间字符串
 * @param string $baseUrl 起始路径
 * @param string $ext 导入的文件扩展名
 * @return boolean
 */
Loader::import($class, $baseUrl = '', $ext = '.php')


/**
 * 实例化(分层)模型
 * @param string $name Model名称
 * @param string $layer业务层名称
 * @param bool   $appendSuffix 是否添加类名后缀
 * @param string $common   公共模块名
 * @return Object
 * @throws ClassNotFoundException
 */
Loader::model($name = '', $layer = 'model', $appendSuffix = false, $common = 'common')


/**
 * 实例化(分层)控制器 格式:[模块名/]控制器名
 * @param string $name 资源地址
 * @param string $layer控制层名称
 * @param bool   $appendSuffix 是否添加类名后缀
 * @param string $empty空控制器名称
 * @return Object|false
 * @throws ClassNotFoundException
 */
Loader::controller($name, $layer = 'controller', $appendSuffix = false, $empty = '')


/**
 * 实例化验证类 格式:[模块名/]验证器名
 * @param string $name 资源地址
 * @param string $layer验证层名称
 * @param bool   $appendSuffix 是否添加类名后缀
 * @param string $common   公共模块名
 * @return Object|false
 * @throws ClassNotFoundException
 */
Loader::validate($name = '', $layer = 'validate', $appendSuffix = false, $common = 'common')


/**
 * 数据库初始化 并取得数据库类实例
 * @param mixed $config 数据库配置
 * @param bool|string   $name 连接标识 true 强制重新连接
 * @return \think\db\Connection
 */
Loader::db($config = [], $name = false)


/**
 * 远程调用模块的操作方法 参数格式 [模块/控制器/]操作
 * @param string   $url  调用地址
 * @param string|array $vars 调用参数 支持字符串和数组
 * @param string   $layer要调用的控制层名称
 * @param bool $appendSuffix 是否添加类名后缀
 * @return mixed
 */
Loader::action($url, $vars = [], $layer = 'controller', $appendSuffix = false)


/**
 * 字符串命名风格转换
 * type 0 将Java风格转换为C的风格 1 将C风格转换为Java的风格
 * @param string  $name 字符串
 * @param integer $type 转换类型
 * @param bool$ucfirst 首字母是否大写(驼峰规则)
 * @return string
 */
Loader::parseName($name, $type = 0, $ucfirst = true)


/**
 * 解析应用类的类名
 * @param string $module 模块名
 * @param string $layer  层名 controller model ...
 * @param string $name   类名
 * @param bool   $appendSuffix
 * @return string
 */
Loader::parseClass($module, $layer, $name, $appendSuffix = false)


/**
 * 初始化类的实例
 * @return void
 */
Loader::clearInstance()

Log

/**
 * 日志初始化
 * @param array $config
 */
Log::init($config = [])


/**
 * 获取日志信息
 * @param string $type 信息类型
 * @return array
 */
Log::getLog($type = '')


/**
 * 记录调试信息
 * @param mixed  $msg  调试信息
 * @param string $type 信息类型
 * @return void
 */
Log::record($msg, $type = 'log')


/**
 * 清空日志信息
 * @return void
 */
Log::clear()


/**
 * 当前日志记录的授权key
 * @param string $key 授权key
 * @return void
 */
Log::key($key)


/**
 * 检查日志写入权限
 * @param array $config 当前日志配置参数
 * @return bool
 */
Log::check($config)


/**
 * 保存调试信息
 * @return bool
 */
Log::save()


/**
 * 实时写入日志信息 并支持行为
 * @param mixed  $msg   调试信息
 * @param string $type  信息类型
 * @param bool   $force 是否强制写入
 * @return bool
 */
Log::write($msg, $type = 'log', $force = false)


/**
 * 静态调用
 * @param $method
 * @param $args
 * @return mixed
 */
Log::__callStatic($method, $args)

Model

$Model = new Model();

/**
 * 创建模型的查询对象
 * @access protected
 * @return Query
 */
$this->buildQuery()


/**
 * 获取当前模型的查询对象
 * @access public
 * @param bool  $buildNewQuery  创建新的查询对象
 * @return Query
 */
Model->getQuery($buildNewQuery = false)


/**
 * 获取当前模型的数据库查询对象
 * @access public
 * @param bool $useBaseQuery 是否调用全局查询范围
 * @param bool $buildNewQuery 创建新的查询对象
 * @return Query
 */
Model->db($useBaseQuery = true, $buildNewQuery = true)


/**
 *  初始化模型
 * @access protected
 * @return void
 */
$this->initialize()


/**
 * 初始化处理
 * @access protected
 * @return void
 */
self::init()


/**
 * 设置父关联对象
 * @access public
 * @param Model $model  模型对象
 * @return $this
 */
Model->setParent($model)


/**
 * 获取父关联对象
 * @access public
 * @return Model
 */
Model->getParent()


/**
 * 设置数据对象值
 * @access public
 * @param mixed $data  数据或者属性名
 * @param mixed $value 值
 * @return $this
 */
Model->data($data, $value = NULL)


/**
 * 获取对象原始数据 如果不存在指定字段返回false
 * @access public
 * @param string $name 字段名 留空获取全部
 * @return mixed
 * @throws InvalidArgumentException
 */
Model->getData($name = NULL)


/**
 * 修改器 设置数据对象值
 * @access public
 * @param string $name  属性名
 * @param mixed  $value 属性值
 * @param array  $data  数据
 * @return $this
 */
Model->setAttr($name, $value, $data = [])


/**
 * 获取当前模型的关联模型数据
 * @access public
 * @param string $name 关联方法名
 * @return mixed
 */
Model->getRelation($name = NULL)


/**
 * 设置关联数据对象值
 * @access public
 * @param string $name  属性名
 * @param mixed  $value 属性值
 * @return $this
 */
Model->setRelation($name, $value)


/**
 * 自动写入时间戳
 * @access public
 * @param string $name 时间戳字段
 * @return mixed
 */
$this->autoWriteTimestamp($name)


/**
 * 时间日期字段格式化处理
 * @access public
 * @param mixed $time  时间日期表达式
 * @param mixed $format日期格式
 * @param bool  $timestamp 是否进行时间戳转换
 * @return mixed
 */
$this->formatDateTime($time, $format, $timestamp = false)


/**
 * 数据写入 类型转换
 * @access public
 * @param mixed$value 值
 * @param string|array $type  要转换的类型
 * @return mixed
 */
$this->writeTransform($value, $type)


/**
 * 获取器 获取数据对象的值
 * @access public
 * @param string $name 名称
 * @return mixed
 * @throws InvalidArgumentException
 */
Model->getAttr($name)


/**
 * 获取关联模型数据
 * @access public
 * @param Relation$modelRelation 模型关联对象
 * @return mixed
 */
$this->getRelationData($modelRelation)


/**
 * 数据读取 类型转换
 * @access public
 * @param mixed$value 值
 * @param string|array $type  要转换的类型
 * @return mixed
 */
$this->readTransform($value, $type)


/**
 * 设置需要追加的输出属性
 * @access public
 * @param array $append   属性列表
 * @param bool  $override 是否覆盖
 * @return $this
 */
Model->append($append = [], $override = false)


/**
 * 设置附加关联对象的属性
 * @access public
 * @param string   $relation 关联方法
 * @param string|array $append   追加属性名
 * @return $this
 * @throws Exception
 */
Model->appendRelationAttr($relation, $append)


/**
 * 设置需要隐藏的输出属性
 * @access public
 * @param array $hidden   属性列表
 * @param bool  $override 是否覆盖
 * @return $this
 */
Model->hidden($hidden = [], $override = false)


/**
 * 设置需要输出的属性
 * @access public
 * @param array $visible
 * @param bool  $override 是否覆盖
 * @return $this
 */
Model->visible($visible = [], $override = false)


/**
 * 解析隐藏及显示属性
 * @access protected
 * @param array $attrs  属性
 * @param array $result 结果集
 * @param bool  $visible
 * @return array
 */
$this->parseAttr($attrs, &$result, $visible = true)


/**
 * 转换子模型对象
 * @access protected
 * @param Model|ModelCollection $model
 * @param  $visible
 * @param  $hidden
 * @param  $key
 * @return array
 */
$this->subToArray($model, $visible, $hidden, $key)


/**
 * 转换当前模型对象为数组
 * @access public
 * @return array
 */
Model->toArray()


/**
 * 转换当前模型对象为JSON字符串
 * @access public
 * @param integer $options json参数
 * @return string
 */
Model->toJson($options = 256)


/**
 * 转换当前模型数据集为数据集对象
 * @access public
 * @param array|\think\Collection $collection 数据集
 * @return \think\Collection
 */
Model->toCollection($collection)


/**
 * 关联数据一起更新
 * @access public
 * @param mixed $relation 关联
 * @return $this
 */
Model->together($relation)


/**
 * 获取模型对象的主键
 * @access public
 * @param string $name 模型名
 * @return mixed
 */
Model->getPk($name = '')


/**
 * 判断一个字段名是否为主键字段
 * @access public
 * @param string $key 名称
 * @return bool
 */
$this->isPk($key)


/**
 * 保存当前数据对象
 * @access public
 * @param array  $data 数据
 * @param array  $where更新条件
 * @param string $sequence 自增序列名
 * @return integer|false
 */
Model->save($data = [], $where = [], $sequence = NULL)



$this->autoRelationUpdate($relation)


/**
 * 获取变化的数据 并排除只读数据
 * @access public
 * @return array
 */
Model->getChangedData()


/**
 * 保存多个数据到当前数据对象
 * @access public
 * @param array   $dataSet 数据
 * @param boolean $replace 是否自动识别更新和写入
 * @return array|false
 * @throws \Exception
 */
Model->saveAll($dataSet, $replace = true)


/**
 * 设置允许写入的字段
 * @access public
 * @param mixed $field 允许写入的字段 如果为true只允许写入数据表字段
 * @return $this
 */
Model->allowField($field)


/**
 * 设置只读字段
 * @access public
 * @param mixed $field 只读字段
 * @return $this
 */
Model->readonly($field)


/**
 * 是否为更新数据
 * @access public
 * @param bool  $update
 * @param mixed $where
 * @return $this
 */
Model->isUpdate($update = true, $where = NULL)


/**
 * 数据自动完成
 * @access public
 * @param array $auto 要自动更新的字段列表
 * @return void
 */
$this->autoCompleteData($auto = [])


/**
 * 删除当前的记录
 * @access public
 * @return integer
 */
Model->delete()


/**
 * 设置自动完成的字段( 规则通过修改器定义)
 * @access public
 * @param array $fields 需要自动完成的字段
 * @return $this
 */
Model->auto($fields)


/**
 * 设置字段验证
 * @access public
 * @param array|string|bool $rule  验证规则 true表示自动读取验证器类
 * @param array $msg   提示信息
 * @param bool  $batch 批量验证
 * @return $this
 */
Model->validate($rule = true, $msg = [], $batch = false)


/**
 * 设置验证失败后是否抛出异常
 * @access public
 * @param bool $fail 是否抛出异常
 * @return $this
 */
Model->validateFailException($fail = true)


/**
 * 自动验证数据
 * @access protected
 * @param array $data  验证数据
 * @param mixed $rule  验证规则
 * @param bool  $batch 批量验证
 * @return bool
 */
$this->validateData($data, $rule = NULL, $batch = NULL)


/**
 * 返回模型的错误信息
 * @access public
 * @return string|array
 */
Model->getError()


/**
 * 注册回调方法
 * @access public
 * @param string   $event事件名
 * @param callable $callback 回调方法
 * @param bool $override 是否覆盖
 * @return void
 */
Model::event($event, $callback, $override = false)


/**
 * 触发事件
 * @access protected
 * @param string $event  事件名
 * @param mixed  $params 传入参数(引用)
 * @return bool
 */
$this->trigger($event, &$params)


/**
 * 写入数据
 * @access public
 * @param array  $data  数据数组
 * @param array|true $field 允许字段
 * @return $this
 */
Model::create($data = [], $field = NULL)


/**
 * 更新数据
 * @access public
 * @param array  $data  数据数组
 * @param array  $where 更新条件
 * @param array|true $field 允许字段
 * @return $this
 */
Model::update($data = [], $where = [], $field = NULL)


/**
 * 查找单条记录
 * @access public
 * @param mixed$data  主键值或者查询条件(闭包)
 * @param array|string $with  关联预查询
 * @param bool $cache 是否缓存
 * @return static|null
 * @throws exception\DbException
 */
Model::get($data, $with = [], $cache = false)


/**
 * 查找所有记录
 * @access public
 * @param mixed$data  主键列表或者查询条件(闭包)
 * @param array|string $with  关联预查询
 * @param bool $cache 是否缓存
 * @return static[]|false
 * @throws exception\DbException
 */
Model::all($data = NULL, $with = [], $cache = false)


/**
 * 分析查询表达式
 * @access public
 * @param mixed  $data  主键列表或者查询条件(闭包)
 * @param string $with  关联预查询
 * @param bool   $cache 是否缓存
 * @return Query
 */
self::parseQuery(&$data, $with, $cache)


/**
 * 删除记录
 * @access public
 * @param mixed $data 主键列表 支持闭包查询条件
 * @return integer 成功删除的记录数
 */
Model::destroy($data)


/**
 * 命名范围
 * @access public
 * @param string|array|\Closure $name 命名范围名称 逗号分隔
 * @internal  mixed ...$params 参数调用
 * @return Query
 */
Model::scope($name)


/**
 * 设置是否使用全局查询范围
 * @param bool $use 是否启用全局查询范围
 * @access public
 * @return Model
 */
Model::useGlobalScope($use)


/**
 * 根据关联条件查询当前模型
 * @access public
 * @param string  $relation 关联方法名
 * @param mixed   $operator 比较操作符
 * @param integer $count个数
 * @param string  $id   关联表的统计字段
 * @return Relation|Query
 */
Model::has($relation, $operator = '>=', $count = 1, $id = '*')


/**
 * 根据关联条件查询当前模型
 * @access public
 * @param string $relation 关联方法名
 * @param mixed  $where查询条件(数组或者闭包)
 * @return Relation|Query
 */
Model::hasWhere($relation, $where = [])


/**
 * 解析模型的完整命名空间
 * @access public
 * @param string $model 模型名(或者完整类名)
 * @return string
 */
$this->parseModel($model)


/**
 * 查询当前模型的关联数据
 * @access public
 * @param string|array $relations 关联名
 * @return $this
 */
Model->relationQuery($relations)


/**
 * 预载入关联查询 返回数据集
 * @access public
 * @param array  $resultSet 数据集
 * @param string $relation  关联名
 * @return array
 */
Model->eagerlyResultSet(&$resultSet, $relation)


/**
 * 预载入关联查询 返回模型对象
 * @access public
 * @param Model  $result   数据对象
 * @param string $relation 关联名
 * @return Model
 */
Model->eagerlyResult(&$result, $relation)


/**
 * 关联统计
 * @access public
 * @param Model$result   数据对象
 * @param string|array $relation 关联名
 * @return void
 */
Model->relationCount(&$result, $relation)


/**
 * 获取模型的默认外键名
 * @access public
 * @param string $name 模型名
 * @return string
 */
$this->getForeignKey($name)


/**
 * HAS ONE 关联定义
 * @access public
 * @param string $model  模型名
 * @param string $foreignKey 关联外键
 * @param string $localKey   关联主键
 * @param array  $alias  别名定义(已经废弃)
 * @param string $joinType   JOIN类型
 * @return HasOne
 */
Model->hasOne($model, $foreignKey = '', $localKey = '', $alias = [], $joinType = 'INNER')


/**
 * BELONGS TO 关联定义
 * @access public
 * @param string $model  模型名
 * @param string $foreignKey 关联外键
 * @param string $localKey   关联主键
 * @param array  $alias  别名定义(已经废弃)
 * @param string $joinType   JOIN类型
 * @return BelongsTo
 */
Model->belongsTo($model, $foreignKey = '', $localKey = '', $alias = [], $joinType = 'INNER')


/**
 * HAS MANY 关联定义
 * @access public
 * @param string $model  模型名
 * @param string $foreignKey 关联外键
 * @param string $localKey   关联主键
 * @return HasMany
 */
Model->hasMany($model, $foreignKey = '', $localKey = '')


/**
 * HAS MANY 远程关联定义
 * @access public
 * @param string $model  模型名
 * @param string $through中间模型名
 * @param string $foreignKey 关联外键
 * @param string $throughKey 关联外键
 * @param string $localKey   关联主键
 * @return HasManyThrough
 */
Model->hasManyThrough($model, $through, $foreignKey = '', $throughKey = '', $localKey = '')


/**
 * BELONGS TO MANY 关联定义
 * @access public
 * @param string $model  模型名
 * @param string $table  中间表名
 * @param string $foreignKey 关联外键
 * @param string $localKey   当前模型关联键
 * @return BelongsToMany
 */
Model->belongsToMany($model, $table = '', $foreignKey = '', $localKey = '')


/**
 * MORPH  MANY 关联定义
 * @access public
 * @param string   $model 模型名
 * @param string|array $morph 多态字段信息
 * @param string   $type  多态类型
 * @return MorphMany
 */
Model->morphMany($model, $morph = NULL, $type = '')


/**
 * MORPH  One 关联定义
 * @access public
 * @param string   $model 模型名
 * @param string|array $morph 多态字段信息
 * @param string   $type  多态类型
 * @return MorphOne
 */
Model->morphOne($model, $morph = NULL, $type = '')


/**
 * MORPH TO 关联定义
 * @access public
 * @param string|array $morph 多态字段信息
 * @param array$alias 多态别名定义
 * @return MorphTo
 */
Model->morphTo($morph = NULL, $alias = [])



Model->__call($method, $args)



Model::__callStatic($method, $args)


/**
 * 修改器 设置数据对象的值
 * @access public
 * @param string $name  名称
 * @param mixed  $value 值
 * @return void
 */
Model->__set($name, $value)


/**
 * 获取器 获取数据对象的值
 * @access public
 * @param string $name 名称
 * @return mixed
 */
Model->__get($name)


/**
 * 检测数据对象的值
 * @access public
 * @param string $name 名称
 * @return boolean
 */
Model->__isset($name)


/**
 * 销毁数据对象的值
 * @access public
 * @param string $name 名称
 * @return void
 */
Model->__unset($name)



Model->__toString()



Model->jsonSerialize()



Model->offsetSet($name, $value)



Model->offsetExists($name)



Model->offsetUnset($name)



Model->offsetGet($name)


/**
 * 解序列化后处理
 */
Model->__wakeup()


/**
 * 模型事件快捷方法
 * @param  $callback
 * @param bool $override
 */
self::beforeInsert($callback, $override = false)



self::afterInsert($callback, $override = false)



self::beforeUpdate($callback, $override = false)



self::afterUpdate($callback, $override = false)



self::beforeWrite($callback, $override = false)



self::afterWrite($callback, $override = false)



self::beforeDelete($callback, $override = false)



self::afterDelete($callback, $override = false)

Paginator

$Paginator = new Paginator();

/**
 * @param   $items
 * @param   $listRows
 * @param null  $currentPage
 * @param bool  $simple
 * @param null  $total
 * @param array $options
 * @return Paginator
 */
Paginator::make($items, $listRows, $currentPage = NULL, $total = NULL, $simple = false, $options = [])



$this->setCurrentPage($currentPage)


/**
 * 获取页码对应的链接
 *
 * @param $page
 * @return string
 */
$this->url($page)


/**
 * 自动获取当前页码
 * @param string $varPage
 * @param int$default
 * @return int
 */
Paginator::getCurrentPage($varPage = 'page', $default = 1)


/**
 * 自动获取当前的path
 * @return string
 */
Paginator::getCurrentPath()



Paginator->total()



Paginator->listRows()



Paginator->currentPage()



Paginator->lastPage()


/**
 * 数据是否足够分页
 * @return boolean
 */
Paginator->hasPages()


/**
 * 创建一组分页链接
 *
 * @param  int $start
 * @param  int $end
 * @return array
 */
Paginator->getUrlRange($start, $end)


/**
 * 设置URL锚点
 *
 * @param  string|null $fragment
 * @return $this
 */
Paginator->fragment($fragment)


/**
 * 添加URL参数
 *
 * @param  array|string $key
 * @param  string|null  $value
 * @return $this
 */
Paginator->appends($key, $value = NULL)


/**
 * 构造锚点字符串
 *
 * @return string
 */
$this->buildFragment()


/**
 * 渲染分页html
 * @return mixed
 */
Paginator->render()



Paginator->items()



Paginator->getCollection()



Paginator->isEmpty()


/**
 * Retrieve an external iterator
 * @return Traversable An instance of an object implementing Iterator or
 * Traversable
 */
Paginator->getIterator()


/**
 * Whether a offset exists
 * @param mixed $offset
 * @return bool
 */
Paginator->offsetExists($offset)


/**
 * Offset to retrieve
 * @param mixed $offset
 * @return mixed
 */
Paginator->offsetGet($offset)


/**
 * Offset to set
 * @param mixed $offset
 * @param mixed $value
 */
Paginator->offsetSet($offset, $value)


/**
 * Offset to unset
 * @param mixed $offset
 * @return void
 * @since 5.0.0
 */
Paginator->offsetUnset($offset)


/**
 * Count elements of an object
 */
Paginator->count()



Paginator->__toString()



Paginator->toArray()


/**
 * Specify data which should be serialized to JSON
 */
Paginator->jsonSerialize()



Paginator->__call($name, $arguments)

Process

$Process = new Process();


Process->__clone()


/**
 * 运行指令
 * @param callback|null $callback
 * @return int
 */
Process->run($callback = NULL)


/**
 * 运行指令
 * @param callable|null $callback
 * @return self
 * @throws \RuntimeException
 * @throws ProcessFailedException
 */
Process->mustRun($callback = NULL)


/**
 * 启动进程并写到 STDIN 输入后返回。
 * @param callable|null $callback
 * @throws \RuntimeException
 * @throws \RuntimeException
 * @throws \LogicException
 */
Process->start($callback = NULL)


/**
 * 重启进程
 * @param callable|null $callback
 * @return Process
 * @throws \RuntimeException
 * @throws \RuntimeException
 */
Process->restart($callback = NULL)


/**
 * 等待要终止的进程
 * @param callable|null $callback
 * @return int
 */
Process->wait($callback = NULL)


/**
 * 获取PID
 * @return int|null
 * @throws \RuntimeException
 */
Process->getPid()


/**
 * 将一个 POSIX 信号发送到进程中
 * @param int $signal
 * @return Process
 */
Process->signal($signal)


/**
 * 禁用从底层过程获取输出和错误输出。
 * @return Process
 */
Process->disableOutput()


/**
 * 开启从底层过程获取输出和错误输出。
 * @return Process
 * @throws \RuntimeException
 */
Process->enableOutput()


/**
 * 输出是否禁用
 * @return bool
 */
Process->isOutputDisabled()


/**
 * 获取当前的输出管道
 * @return string
 * @throws \LogicException
 * @throws \LogicException
 * @api
 */
Process->getOutput()


/**
 * 以增量方式返回的输出结果。
 * @return string
 */
Process->getIncrementalOutput()


/**
 * 清空输出
 * @return Process
 */
Process->clearOutput()


/**
 * 返回当前的错误输出的过程 (STDERR)。
 * @return string
 */
Process->getErrorOutput()


/**
 * 以增量方式返回 errorOutput
 * @return string
 */
Process->getIncrementalErrorOutput()


/**
 * 清空 errorOutput
 * @return Process
 */
Process->clearErrorOutput()


/**
 * 获取退出码
 * @return null|int
 */
Process->getExitCode()


/**
 * 获取退出文本
 * @return null|string
 */
Process->getExitCodeText()


/**
 * 检查是否成功
 * @return bool
 */
Process->isSuccessful()


/**
 * 是否未捕获的信号已被终止子进程
 * @return bool
 */
Process->hasBeenSignaled()


/**
 * 返回导致子进程终止其执行的数。
 * @return int
 */
Process->getTermSignal()


/**
 * 检查子进程信号是否已停止
 * @return bool
 */
Process->hasBeenStopped()


/**
 * 返回导致子进程停止其执行的数。
 * @return int
 */
Process->getStopSignal()


/**
 * 检查是否正在运行
 * @return bool
 */
Process->isRunning()


/**
 * 检查是否已开始
 * @return bool
 */
Process->isStarted()


/**
 * 检查是否已终止
 * @return bool
 */
Process->isTerminated()


/**
 * 获取当前的状态
 * @return string
 */
Process->getStatus()


/**
 * 终止进程
 */
Process->stop()


/**
 * 添加一行输出
 * @param string $line
 */
Process->addOutput($line)


/**
 * 添加一行错误输出
 * @param string $line
 */
Process->addErrorOutput($line)


/**
 * 获取被执行的指令
 * @return string
 */
Process->getCommandLine()


/**
 * 设置指令
 * @param string $commandline
 * @return self
 */
Process->setCommandLine($commandline)


/**
 * 获取超时时间
 * @return float|null
 */
Process->getTimeout()


/**
 * 获取idle超时时间
 * @return float|null
 */
Process->getIdleTimeout()


/**
 * 设置超时时间
 * @param int|float|null $timeout
 * @return self
 */
Process->setTimeout($timeout)


/**
 * 设置idle超时时间
 * @param int|float|null $timeout
 * @return self
 */
Process->setIdleTimeout($timeout)


/**
 * 设置TTY
 * @param bool $tty
 * @return self
 */
Process->setTty($tty)


/**
 * 检查是否是tty模式
 * @return bool
 */
Process->isTty()


/**
 * 设置pty模式
 * @param bool $bool
 * @return self
 */
Process->setPty($bool)


/**
 * 是否是pty模式
 * @return bool
 */
Process->isPty()


/**
 * 获取工作目录
 * @return string|null
 */
Process->getWorkingDirectory()


/**
 * 设置工作目录
 * @param string $cwd
 * @return self
 */
Process->setWorkingDirectory($cwd)


/**
 * 获取环境变量
 * @return array
 */
Process->getEnv()


/**
 * 设置环境变量
 * @param array $env
 * @return self
 */
Process->setEnv($env)


/**
 * 获取输入
 * @return null|string
 */
Process->getInput()


/**
 * 设置输入
 * @param mixed $input
 * @return self
 */
Process->setInput($input)


/**
 * 获取proc_open的选项
 * @return array
 */
Process->getOptions()


/**
 * 设置proc_open的选项
 * @param array $options
 * @return self
 */
Process->setOptions($options)


/**
 * 是否兼容windows
 * @return bool
 */
Process->getEnhanceWindowsCompatibility()


/**
 * 设置是否兼容windows
 * @param bool $enhance
 * @return self
 */
Process->setEnhanceWindowsCompatibility($enhance)


/**
 * 返回是否 sigchild 兼容模式激活
 * @return bool
 */
Process->getEnhanceSigchildCompatibility()


/**
 * 激活 sigchild 兼容性模式。
 * @param bool $enhance
 * @return self
 */
Process->setEnhanceSigchildCompatibility($enhance)


/**
 * 是否超时
 */
Process->checkTimeout()


/**
 * 是否支持pty
 * @return bool
 */
Process::isPtySupported()


/**
 * 创建所需的 proc_open 的描述符
 * @return array
 */
$this->getDescriptors()


/**
 * 建立 wait () 使用的回调。
 * @param callable|null $callback
 * @return callable
 */
$this->buildCallback($callback)


/**
 * 更新状态
 * @param bool $blocking
 */
$this->updateStatus($blocking)


/**
 * 是否开启 '--enable-sigchild'
 * @return bool
 */
$this->isSigchildEnabled()


/**
 * 验证是否超时
 * @param int|float|null $timeout
 * @return float|null
 */
$this->validateTimeout($timeout)


/**
 * 读取pipes
 * @param bool $blocking
 * @param bool $close
 */
$this->readPipes($blocking, $close)


/**
 * 捕获退出码
 */
$this->captureExitCode()


/**
 * 关闭资源
 * @return int 退出码
 */
$this->close()


/**
 * 重置数据
 */
$this->resetProcessData()


/**
 * 将一个 POSIX 信号发送到进程中。
 * @param int  $signal
 * @param bool $throwException
 * @return bool
 */
$this->doSignal($signal, $throwException)


/**
 * 确保进程已经开启
 * @param string $functionName
 */
$this->requireProcessIsStarted($functionName)


/**
 * 确保进程已经终止
 * @param string $functionName
 */
$this->requireProcessIsTerminated($functionName)

Request

$Request = new Request();


Request->__call($method, $args)


/**
 * Hook 方法注入
 * @access public
 * @param string|array  $method 方法名
 * @param mixed $callback callable
 * @return void
 */
Request::hook($method, $callback = NULL)


/**
 * 初始化
 * @access public
 * @param array $options 参数
 * @return \think\Request
 */
Request::instance($options = [])


/**
 * 创建一个URL请求
 * @access public
 * @param string$uri URL地址
 * @param string$method 请求类型
 * @param array $params 请求参数
 * @param array $cookie
 * @param array $files
 * @param array $server
 * @param string$content
 * @return \think\Request
 */
Request::create($uri, $method = 'GET', $params = [], $cookie = [], $files = [], $server = [], $content = NULL)


/**
 * 设置或获取当前包含协议的域名
 * @access public
 * @param string $domain 域名
 * @return string
 */
Request->domain($domain = NULL)


/**
 * 设置或获取当前完整URL 包括QUERY_STRING
 * @access public
 * @param string|true $url URL地址 true 带域名获取
 * @return string
 */
Request->url($url = NULL)


/**
 * 设置或获取当前URL 不含QUERY_STRING
 * @access public
 * @param string $url URL地址
 * @return string
 */
Request->baseUrl($url = NULL)


/**
 * 设置或获取当前执行的文件 SCRIPT_NAME
 * @access public
 * @param string $file 当前执行的文件
 * @return string
 */
Request->baseFile($file = NULL)


/**
 * 设置或获取URL访问根地址
 * @access public
 * @param string $url URL地址
 * @return string
 */
Request->root($url = NULL)


/**
 * 获取当前请求URL的pathinfo信息(含URL后缀)
 * @access public
 * @return string
 */
Request->pathinfo()


/**
 * 获取当前请求URL的pathinfo信息(不含URL后缀)
 * @access public
 * @return string
 */
Request->path()


/**
 * 当前URL的访问后缀
 * @access public
 * @return string
 */
Request->ext()


/**
 * 获取当前请求的时间
 * @access public
 * @param bool $float 是否使用浮点类型
 * @return integer|float
 */
Request->time($float = false)


/**
 * 当前请求的资源类型
 * @access public
 * @return false|string
 */
Request->type()


/**
 * 设置资源类型
 * @access public
 * @param string|array  $type 资源类型名
 * @param string$val 资源类型
 * @return void
 */
Request->mimeType($type, $val = '')


/**
 * 当前的请求类型
 * @access public
 * @param bool $method  true 获取原始请求类型
 * @return string
 */
Request->method($method = false)


/**
 * 是否为GET请求
 * @access public
 * @return bool
 */
Request->isGet()


/**
 * 是否为POST请求
 * @access public
 * @return bool
 */
Request->isPost()


/**
 * 是否为PUT请求
 * @access public
 * @return bool
 */
Request->isPut()


/**
 * 是否为DELTE请求
 * @access public
 * @return bool
 */
Request->isDelete()


/**
 * 是否为HEAD请求
 * @access public
 * @return bool
 */
Request->isHead()


/**
 * 是否为PATCH请求
 * @access public
 * @return bool
 */
Request->isPatch()


/**
 * 是否为OPTIONS请求
 * @access public
 * @return bool
 */
Request->isOptions()


/**
 * 是否为cli
 * @access public
 * @return bool
 */
Request->isCli()


/**
 * 是否为cgi
 * @access public
 * @return bool
 */
Request->isCgi()


/**
 * 获取获取当前请求的参数
 * @access public
 * @param string|array  $name 变量名
 * @param mixed $default 默认值
 * @param string|array  $filter 过滤方法
 * @return mixed
 */
Request->param($name = '', $default = NULL, $filter = '')


/**
 * 设置获取获取路由参数
 * @access public
 * @param string|array  $name 变量名
 * @param mixed $default 默认值
 * @param string|array  $filter 过滤方法
 * @return mixed
 */
Request->route($name = '', $default = NULL, $filter = '')


/**
 * 设置获取获取GET参数
 * @access public
 * @param string|array  $name 变量名
 * @param mixed $default 默认值
 * @param string|array  $filter 过滤方法
 * @return mixed
 */
Request->get($name = '', $default = NULL, $filter = '')


/**
 * 设置获取获取POST参数
 * @access public
 * @param string$name 变量名
 * @param mixed $default 默认值
 * @param string|array  $filter 过滤方法
 * @return mixed
 */
Request->post($name = '', $default = NULL, $filter = '')


/**
 * 设置获取获取PUT参数
 * @access public
 * @param string|array  $name 变量名
 * @param mixed $default 默认值
 * @param string|array  $filter 过滤方法
 * @return mixed
 */
Request->put($name = '', $default = NULL, $filter = '')


/**
 * 设置获取获取DELETE参数
 * @access public
 * @param string|array  $name 变量名
 * @param mixed $default 默认值
 * @param string|array  $filter 过滤方法
 * @return mixed
 */
Request->delete($name = '', $default = NULL, $filter = '')


/**
 * 设置获取获取PATCH参数
 * @access public
 * @param string|array  $name 变量名
 * @param mixed $default 默认值
 * @param string|array  $filter 过滤方法
 * @return mixed
 */
Request->patch($name = '', $default = NULL, $filter = '')


/**
 * 获取request变量
 * @param string$name 数据名称
 * @param string$default 默认值
 * @param string|array  $filter 过滤方法
 * @return mixed
 */
Request->request($name = '', $default = NULL, $filter = '')


/**
 * 获取session数据
 * @access public
 * @param string|array  $name 数据名称
 * @param string$default 默认值
 * @param string|array  $filter 过滤方法
 * @return mixed
 */
Request->session($name = '', $default = NULL, $filter = '')


/**
 * 获取cookie参数
 * @access public
 * @param string|array  $name 数据名称
 * @param string$default 默认值
 * @param string|array  $filter 过滤方法
 * @return mixed
 */
Request->cookie($name = '', $default = NULL, $filter = '')


/**
 * 获取server参数
 * @access public
 * @param string|array  $name 数据名称
 * @param string$default 默认值
 * @param string|array  $filter 过滤方法
 * @return mixed
 */
Request->server($name = '', $default = NULL, $filter = '')


/**
 * 获取上传的文件信息
 * @access public
 * @param string|array $name 名称
 * @return null|array|\think\File
 */
Request->file($name = '')


/**
 * 获取环境变量
 * @param string|array  $name 数据名称
 * @param string$default 默认值
 * @param string|array  $filter 过滤方法
 * @return mixed
 */
Request->env($name = '', $default = NULL, $filter = '')


/**
 * 设置或者获取当前的Header
 * @access public
 * @param string|array  $name header名称
 * @param string$default 默认值
 * @return string
 */
Request->header($name = '', $default = NULL)


/**
 * 获取变量 支持过滤和默认值
 * @param array $data 数据源
 * @param string|false  $name 字段名
 * @param mixed $default 默认值
 * @param string|array  $filter 过滤函数
 * @return mixed
 */
Request->input($data = [], $name = '', $default = NULL, $filter = '')


/**
 * 设置或获取当前的过滤规则
 * @param mixed $filter 过滤规则
 * @return mixed
 */
Request->filter($filter = NULL)



$this->getFilter($filter, $default)


/**
 * 递归过滤给定的值
 * @param mixed $value 键值
 * @param mixed $key 键名
 * @param array $filters 过滤方法+默认值
 * @return mixed
 */
$this->filterValue(&$value, $key, $filters)


/**
 * 过滤表单中的表达式
 * @param string $value
 * @return void
 */
Request->filterExp(&$value)


/**
 * 强制类型转换
 * @param string $data
 * @param string $type
 * @return mixed
 */
$this->typeCast(&$data, $type)


/**
 * 是否存在某个请求参数
 * @access public
 * @param string$name 变量名
 * @param string$type 变量类型
 * @param bool  $checkEmpty 是否检测空值
 * @return mixed
 */
Request->has($name, $type = 'param', $checkEmpty = false)


/**
 * 获取指定的参数
 * @access public
 * @param string|array  $name 变量名
 * @param string$type 变量类型
 * @return mixed
 */
Request->only($name, $type = 'param')


/**
 * 排除指定参数获取
 * @access public
 * @param string|array  $name 变量名
 * @param string$type 变量类型
 * @return mixed
 */
Request->except($name, $type = 'param')


/**
 * 当前是否ssl
 * @access public
 * @return bool
 */
Request->isSsl()


/**
 * 当前是否Ajax请求
 * @access public
 * @param bool $ajax  true 获取原始ajax请求
 * @return bool
 */
Request->isAjax($ajax = false)


/**
 * 当前是否Pjax请求
 * @access public
 * @param bool $pjax  true 获取原始pjax请求
 * @return bool
 */
Request->isPjax($pjax = false)


/**
 * 获取客户端IP地址
 * @param integer   $type 返回类型 0 返回IP地址 1 返回IPV4地址数字
 * @param boolean   $adv 是否进行高级模式获取(有可能被伪装)
 * @return mixed
 */
Request->ip($type = 0, $adv = false)


/**
 * 检测是否使用手机访问
 * @access public
 * @return bool
 */
Request->isMobile()


/**
 * 当前URL地址中的scheme参数
 * @access public
 * @return string
 */
Request->scheme()


/**
 * 当前请求URL地址中的query参数
 * @access public
 * @return string
 */
Request->query()


/**
 * 当前请求的host
 * @access public
 * @return string
 */
Request->host()


/**
 * 当前请求URL地址中的port参数
 * @access public
 * @return integer
 */
Request->port()


/**
 * 当前请求 SERVER_PROTOCOL
 * @access public
 * @return integer
 */
Request->protocol()


/**
 * 当前请求 REMOTE_PORT
 * @access public
 * @return integer
 */
Request->remotePort()


/**
 * 当前请求 HTTP_CONTENT_TYPE
 * @access public
 * @return string
 */
Request->contentType()


/**
 * 获取当前请求的路由信息
 * @access public
 * @param array $route 路由名称
 * @return array
 */
Request->routeInfo($route = [])


/**
 * 设置或者获取当前请求的调度信息
 * @access public
 * @param array  $dispatch 调度信息
 * @return array
 */
Request->dispatch($dispatch = NULL)


/**
 * 设置或者获取当前的模块名
 * @access public
 * @param string $module 模块名
 * @return string|Request
 */
Request->module($module = NULL)


/**
 * 设置或者获取当前的控制器名
 * @access public
 * @param string $controller 控制器名
 * @return string|Request
 */
Request->controller($controller = NULL)


/**
 * 设置或者获取当前的操作名
 * @access public
 * @param string $action 操作名
 * @return string|Request
 */
Request->action($action = NULL)


/**
 * 设置或者获取当前的语言
 * @access public
 * @param string $lang 语言名
 * @return string|Request
 */
Request->langset($lang = NULL)


/**
 * 设置或者获取当前请求的content
 * @access public
 * @return string
 */
Request->getContent()


/**
 * 获取当前请求的php://input
 * @access public
 * @return string
 */
Request->getInput()


/**
 * 生成请求令牌
 * @access public
 * @param string $name 令牌名称
 * @param mixed  $type 令牌生成方法
 * @return string
 */
Request->token($name = '__token__', $type = 'md5')


/**
 * 设置当前地址的请求缓存
 * @access public
 * @param string $key 缓存标识,支持变量规则 ,例如 item/:name/:id
 * @param mixed  $expire 缓存有效期
 * @param array  $except 缓存排除
 * @return void
 */
Request->cache($key, $expire = NULL, $except = [])


/**
 * 读取请求缓存设置
 * @access public
 * @return array
 */
Request->getCache()


/**
 * 设置当前请求绑定的对象实例
 * @access public
 * @param string $name 绑定的对象标识
 * @param mixed  $obj 绑定的对象实例
 * @return mixed
 */
Request->bind($name, $obj = NULL)



Request->__set($name, $value)



Request->__get($name)



Request->__isset($name)

Response

$Response = new Response();

/**
 * 创建Response对象
 * @access public
 * @param mixed  $data输出数据
 * @param string $type输出类型
 * @param int$code
 * @param array  $header
 * @param array  $options 输出参数
 * @return Response|JsonResponse|ViewResponse|XmlResponse|RedirectResponse|JsonpResponse
 */
Response::create($data = '', $type = '', $code = 200, $header = [], $options = [])


/**
 * 发送数据到客户端
 * @access public
 * @return mixed
 * @throws \InvalidArgumentException
 */
Response->send()


/**
 * 处理数据
 * @access protected
 * @param mixed $data 要处理的数据
 * @return mixed
 */
$this->output($data)


/**
 * 输出的参数
 * @access public
 * @param mixed $options 输出参数
 * @return $this
 */
Response->options($options = [])


/**
 * 输出数据设置
 * @access public
 * @param mixed $data 输出数据
 * @return $this
 */
Response->data($data)


/**
 * 设置响应头
 * @access public
 * @param string|array $name  参数名
 * @param string   $value 参数值
 * @return $this
 */
Response->header($name, $value = NULL)


/**
 * 设置页面输出内容
 * @param $content
 * @return $this
 */
Response->content($content)


/**
 * 发送HTTP状态
 * @param integer $code 状态码
 * @return $this
 */
Response->code($code)


/**
 * LastModified
 * @param string $time
 * @return $this
 */
Response->lastModified($time)


/**
 * Expires
 * @param string $time
 * @return $this
 */
Response->expires($time)


/**
 * ETag
 * @param string $eTag
 * @return $this
 */
Response->eTag($eTag)


/**
 * 页面缓存控制
 * @param string $cache 状态码
 * @return $this
 */
Response->cacheControl($cache)


/**
 * 页面输出类型
 * @param string $contentType 输出类型
 * @param string $charset 输出编码
 * @return $this
 */
Response->contentType($contentType, $charset = 'utf-8')


/**
 * 获取头部信息
 * @param string $name 头部名称
 * @return mixed
 */
Response->getHeader($name = '')


/**
 * 获取原始数据
 * @return mixed
 */
Response->getData()


/**
 * 获取输出数据
 * @return mixed
 */
Response->getContent()


/**
 * 获取状态码
 * @return integer
 */
Response->getCode()

Route

/**
 * 注册变量规则
 * @access public
 * @param string|array  $name 变量名
 * @param string$rule 变量规则
 * @return void
 */
Route::pattern($name = NULL, $rule = '')


/**
 * 注册子域名部署规则
 * @access public
 * @param string|array  $domain 子域名
 * @param mixed $rule 路由规则
 * @param array $option 路由参数
 * @param array $pattern 变量规则
 * @return void
 */
Route::domain($domain, $rule = '', $option = [], $pattern = [])



self::setDomain($domain)


/**
 * 设置路由绑定
 * @access public
 * @param mixed $bind 绑定信息
 * @param string$type 绑定类型 默认为module 支持 namespace class controller
 * @return mixed
 */
Route::bind($bind, $type = 'module')


/**
 * 设置或者获取路由标识
 * @access public
 * @param string|array $name 路由命名标识 数组表示批量设置
 * @param array$value 路由地址及变量信息
 * @return array
 */
Route::name($name = '', $value = NULL)


/**
 * 读取路由绑定
 * @access public
 * @param string$type 绑定类型
 * @return mixed
 */
Route::getBind($type)


/**
 * 导入配置文件的路由规则
 * @access public
 * @param array $rule 路由规则
 * @param string$type 请求类型
 * @return void
 */
Route::import($rule, $type = '*')



self::registerRules($rules, $type = '*')


/**
 * 注册路由规则
 * @access public
 * @param string$rule 路由规则
 * @param string$route 路由地址
 * @param string$type 请求类型
 * @param array $option 路由参数
 * @param array $pattern 变量规则
 * @return void
 */
Route::rule($rule, $route = '', $type = '*', $option = [], $pattern = [])


/**
 * 设置路由规则
 * @access public
 * @param string$rule 路由规则
 * @param string$route 路由地址
 * @param string$type 请求类型
 * @param array $option 路由参数
 * @param array $pattern 变量规则
 * @param string$group 所属分组
 * @return void
 */
self::setRule($rule, $route, $type = '*', $option = [], $pattern = [], $group = '')


/**
 * 设置当前执行的参数信息
 * @access public
 * @param array$options 参数信息
 * @return mixed
 */
self::setOption($options = [])


/**
 * 获取当前执行的所有参数信息
 * @access public
 * @return array
 */
Route::getOption()


/**
 * 获取当前的分组信息
 * @access public
 * @param string$type 分组信息名称 name option pattern
 * @return mixed
 */
Route::getGroup($type)


/**
 * 设置当前的路由分组
 * @access public
 * @param string$name 分组名称
 * @param array $option 分组路由参数
 * @param array $pattern 分组变量规则
 * @return void
 */
Route::setGroup($name, $option = [], $pattern = [])


/**
 * 注册路由分组
 * @access public
 * @param string|array  $name 分组名称或者参数
 * @param array|\Closure$routes 路由地址
 * @param array $option 路由参数
 * @param array $pattern 变量规则
 * @return void
 */
Route::group($name, $routes, $option = [], $pattern = [])


/**
 * 注册路由
 * @access public
 * @param string$rule 路由规则
 * @param string$route 路由地址
 * @param array $option 路由参数
 * @param array $pattern 变量规则
 * @return void
 */
Route::any($rule, $route = '', $option = [], $pattern = [])


/**
 * 注册GET路由
 * @access public
 * @param string$rule 路由规则
 * @param string$route 路由地址
 * @param array $option 路由参数
 * @param array $pattern 变量规则
 * @return void
 */
Route::get($rule, $route = '', $option = [], $pattern = [])


/**
 * 注册POST路由
 * @access public
 * @param string$rule 路由规则
 * @param string$route 路由地址
 * @param array $option 路由参数
 * @param array $pattern 变量规则
 * @return void
 */
Route::post($rule, $route = '', $option = [], $pattern = [])


/**
 * 注册PUT路由
 * @access public
 * @param string$rule 路由规则
 * @param string$route 路由地址
 * @param array $option 路由参数
 * @param array $pattern 变量规则
 * @return void
 */
Route::put($rule, $route = '', $option = [], $pattern = [])


/**
 * 注册DELETE路由
 * @access public
 * @param string$rule 路由规则
 * @param string$route 路由地址
 * @param array $option 路由参数
 * @param array $pattern 变量规则
 * @return void
 */
Route::delete($rule, $route = '', $option = [], $pattern = [])


/**
 * 注册PATCH路由
 * @access public
 * @param string$rule 路由规则
 * @param string$route 路由地址
 * @param array $option 路由参数
 * @param array $pattern 变量规则
 * @return void
 */
Route::patch($rule, $route = '', $option = [], $pattern = [])


/**
 * 注册资源路由
 * @access public
 * @param string$rule 路由规则
 * @param string$route 路由地址
 * @param array $option 路由参数
 * @param array $pattern 变量规则
 * @return void
 */
Route::resource($rule, $route = '', $option = [], $pattern = [])


/**
 * 注册控制器路由 操作方法对应不同的请求后缀
 * @access public
 * @param string$rule 路由规则
 * @param string$route 路由地址
 * @param array $option 路由参数
 * @param array $pattern 变量规则
 * @return void
 */
Route::controller($rule, $route = '', $option = [], $pattern = [])


/**
 * 注册别名路由
 * @access public
 * @param string|array  $rule 路由别名
 * @param string$route 路由地址
 * @param array $option 路由参数
 * @return void
 */
Route::alias($rule = NULL, $route = '', $option = [])


/**
 * 设置不同请求类型下面的方法前缀
 * @access public
 * @param string$method 请求类型
 * @param string$prefix 类型前缀
 * @return void
 */
Route::setMethodPrefix($method, $prefix = '')


/**
 * rest方法定义和修改
 * @access public
 * @param string$name 方法名称
 * @param array|bool$resource 资源
 * @return void
 */
Route::rest($name, $resource = [])


/**
 * 注册未匹配路由规则后的处理
 * @access public
 * @param string$route 路由地址
 * @param string$method 请求类型
 * @param array $option 路由参数
 * @return void
 */
Route::miss($route, $method = '*', $option = [])


/**
 * 注册一个自动解析的URL路由
 * @access public
 * @param string$route 路由地址
 * @return void
 */
Route::auto($route)


/**
 * 获取或者批量设置路由定义
 * @access public
 * @param mixed $rules 请求类型或者路由定义数组
 * @return array
 */
Route::rules($rules = '')


/**
 * 检测子域名部署
 * @access public
 * @param Request   $request Request请求对象
 * @param array $currentRules 当前路由规则
 * @param string$method 请求类型
 * @return void
 */
Route::checkDomain($request, &$currentRules, $method = 'get')


/**
 * 检测URL路由
 * @access public
 * @param Request   $request Request请求对象
 * @param string$url URL地址
 * @param string$depr URL分隔符
 * @param bool  $checkDomain 是否检测域名规则
 * @return false|array
 */
Route::check($request, $url, $depr = '/', $checkDomain = false)



self::checkCache()



self::getRouteExpress($key)


/**
 * 检测路由规则
 * @access private
 * @param Request   $request
 * @param array $rules 路由规则
 * @param string$url URL地址
 * @param string$depr URL分割符
 * @param string$group 路由分组名
 * @param array $options 路由参数(分组)
 * @return mixed
 */
self::checkRoute($request, $rules, $url, $depr = '/', $group = '', $options = [])


/**
 * 检测路由别名
 * @access private
 * @param Request   $request
 * @param string$url URL地址
 * @param string$depr URL分隔符
 * @return mixed
 */
self::checkRouteAlias($request, $url, $depr)


/**
 * 检测URL绑定
 * @access private
 * @param string$url URL地址
 * @param array $rules 路由规则
 * @param string$depr URL分隔符
 * @return mixed
 */
self::checkUrlBind(&$url, &$rules, $depr = '/')


/**
 * 绑定到类
 * @access public
 * @param string$url URL地址
 * @param string$class 类名(带命名空间)
 * @param string$depr URL分隔符
 * @return array
 */
Route::bindToClass($url, $class, $depr = '/')


/**
 * 绑定到命名空间
 * @access public
 * @param string$url URL地址
 * @param string$namespace 命名空间
 * @param string$depr URL分隔符
 * @return array
 */
Route::bindToNamespace($url, $namespace, $depr = '/')


/**
 * 绑定到控制器类
 * @access public
 * @param string$url URL地址
 * @param string$controller 控制器名 (支持带模块名 index/user )
 * @param string$depr URL分隔符
 * @return array
 */
Route::bindToController($url, $controller, $depr = '/')


/**
 * 绑定到模块/控制器
 * @access public
 * @param string$url URL地址
 * @param string$controller 控制器类名(带命名空间)
 * @param string$depr URL分隔符
 * @return array
 */
Route::bindToModule($url, $controller, $depr = '/')


/**
 * 路由参数有效性检查
 * @access private
 * @param array $option 路由参数
 * @param Request   $request Request对象
 * @return bool
 */
self::checkOption($option, $request)


/**
 * 检测路由规则
 * @access private
 * @param string$rule 路由规则
 * @param string$route 路由地址
 * @param string$url URL地址
 * @param array $pattern 变量规则
 * @param array $option 路由参数
 * @param string$depr URL分隔符(全局)
 * @return array|false
 */
self::checkRule($rule, $route, $url, $pattern, $option, $depr)


/**
 * 解析模块的URL地址 [模块/控制器/操作?]参数1=值1&参数2=值2...
 * @access public
 * @param string$url URL地址
 * @param string$depr URL分隔符
 * @param bool  $autoSearch 是否自动深度搜索控制器
 * @return array
 */
Route::parseUrl($url, $depr = '/', $autoSearch = false)


/**
 * 解析URL的pathinfo参数和变量
 * @access private
 * @param string$url URL地址
 * @return array
 */
self::parseUrlPath($url)


/**
 * 检测URL和规则路由是否匹配
 * @access private
 * @param string$url URL地址
 * @param string$rule 路由规则
 * @param array $pattern 变量规则
 * @return array|false
 */
self::match($url, $rule, $pattern)


/**
 * 解析规则路由
 * @access private
 * @param string$rule 路由规则
 * @param string$route 路由地址
 * @param string$pathinfo URL地址
 * @param array $option 路由参数
 * @param array $matches 匹配的变量
 * @return array
 */
self::parseRule($rule, $route, $pathinfo, $option = [], $matches = [])


/**
 * 解析URL地址为 模块/控制器/操作
 * @access private
 * @param string$url URL地址
 * @return array
 */
self::parseModule($url)


/**
 * 解析URL地址中的参数Request对象
 * @access private
 * @param string$rule 路由规则
 * @param array $var 变量
 * @return void
 */
self::parseUrlParams($url, &$var = [])



Route::initInfo()



self::parseVar($rule)

Session

/**
 * 设置或者获取session作用域(前缀)
 * @param string $prefix
 * @return string|void
 */
Session::prefix($prefix = '')


/**
 * session初始化
 * @param array $config
 * @return void
 * @throws \think\Exception
 */
Session::init($config = [])


/**
 * session自动启动或者初始化
 * @return void
 */
Session::boot()


/**
 * session设置
 * @param string$name session名称
 * @param mixed $value session值
 * @param string|null   $prefix 作用域(前缀)
 * @return void
 */
Session::set($name, $value = '', $prefix = NULL)


/**
 * session获取
 * @param string$name session名称
 * @param string|null   $prefix 作用域(前缀)
 * @return mixed
 */
Session::get($name = '', $prefix = NULL)


/**
 * session获取并删除
 * @param string$name session名称
 * @param string|null   $prefix 作用域(前缀)
 * @return mixed
 */
Session::pull($name, $prefix = NULL)


/**
 * session设置 下一次请求有效
 * @param string$name session名称
 * @param mixed $value session值
 * @param string|null   $prefix 作用域(前缀)
 * @return void
 */
Session::flash($name, $value)


/**
 * 清空当前请求的session数据
 * @return void
 */
Session::flush()


/**
 * 删除session数据
 * @param string|array  $name session名称
 * @param string|null   $prefix 作用域(前缀)
 * @return void
 */
Session::delete($name, $prefix = NULL)


/**
 * 清空session数据
 * @param string|null   $prefix 作用域(前缀)
 * @return void
 */
Session::clear($prefix = NULL)


/**
 * 判断session数据
 * @param string$name session名称
 * @param string|null   $prefix
 * @return bool
 */
Session::has($name, $prefix = NULL)


/**
 * 添加数据到一个session数组
 * @param  string  $key
 * @param  mixed   $value
 * @return void
 */
Session::push($key, $value)


/**
 * 启动session
 * @return void
 */
Session::start()


/**
 * 销毁session
 * @return void
 */
Session::destroy()


/**
 * 重新生成session_id
 * @param bool $delete 是否删除关联会话文件
 * @return void
 */
self::regenerate($delete = false)


/**
 * 暂停session
 * @return void
 */
Session::pause()

Template

$Template = new Template();

/**
 * 字符串替换 避免正则混淆
 * @access private
 * @param string $str
 * @return string
 */
$this->stripPreg($str)


/**
 * 模板变量赋值
 * @access public
 * @param mixed $name
 * @param mixed $value
 * @return void
 */
Template->assign($name, $value = '')


/**
 * 模板引擎参数赋值
 * @access public
 * @param mixed $name
 * @param mixed $value
 */
Template->__set($name, $value)


/**
 * 模板引擎配置项
 * @access public
 * @param array|string $config
 * @return void|array
 */
Template->config($config)


/**
 * 模板变量获取
 * @access public
 * @param  string $name 变量名
 * @return mixed
 */
Template->get($name = '')


/**
 * 渲染模板文件
 * @access public
 * @param string$template 模板文件
 * @param array $vars 模板变量
 * @param array $config 模板参数
 * @return void
 */
Template->fetch($template, $vars = [], $config = [])


/**
 * 渲染模板内容
 * @access public
 * @param string$content 模板内容
 * @param array $vars 模板变量
 * @param array $config 模板参数
 * @return void
 */
Template->display($content, $vars = [], $config = [])


/**
 * 设置布局
 * @access public
 * @param mixed $name 布局模板名称 false 则关闭布局
 * @param string$replace 布局模板内容替换标识
 * @return object
 */
Template->layout($name, $replace = '')


/**
 * 检查编译缓存是否有效
 * 如果无效则需要重新编译
 * @access private
 * @param string $cacheFile 缓存文件名
 * @return boolean
 */
$this->checkCache($cacheFile)


/**
 * 检查编译缓存是否存在
 * @access public
 * @param string $cacheId 缓存的id
 * @return boolean
 */
Template->isCache($cacheId)


/**
 * 编译模板文件内容
 * @access private
 * @param string$content 模板内容
 * @param string$cacheFile 缓存文件名
 * @return void
 */
$this->compiler(&$content, $cacheFile)


/**
 * 模板解析入口
 * 支持普通标签和TagLib解析 支持自定义标签库
 * @access public
 * @param string $content 要解析的模板内容
 * @return void
 */
Template->parse(&$content)


/**
 * 检查PHP语法
 * @access private
 * @param string $content 要解析的模板内容
 * @return void
 * @throws \think\Exception
 */
$this->parsePhp(&$content)


/**
 * 解析模板中的布局标签
 * @access private
 * @param string $content 要解析的模板内容
 * @return void
 */
$this->parseLayout(&$content)


/**
 * 解析模板中的include标签
 * @access private
 * @param  string $content 要解析的模板内容
 * @return void
 */
$this->parseInclude(&$content)


/**
 * 解析模板中的extend标签
 * @access private
 * @param  string $content 要解析的模板内容
 * @return void
 */
$this->parseExtend(&$content)


/**
 * 替换页面中的literal标签
 * @access private
 * @param  string   $content 模板内容
 * @param  boolean  $restore 是否为还原
 * @return void
 */
$this->parseLiteral(&$content, $restore = false)


/**
 * 获取模板中的block标签
 * @access private
 * @param  string   $content 模板内容
 * @param  boolean  $sort 是否排序
 * @return array
 */
$this->parseBlock(&$content, $sort = false)


/**
 * 搜索模板页面中包含的TagLib库
 * 并返回列表
 * @access private
 * @param  string $content 模板内容
 * @return array|null
 */
$this->getIncludeTagLib(&$content)


/**
 * TagLib库解析
 * @access public
 * @param  string   $tagLib 要解析的标签库
 * @param  string   $content 要解析的模板内容
 * @param  boolean  $hide 是否隐藏标签库前缀
 * @return void
 */
Template->parseTagLib($tagLib, &$content, $hide = false)


/**
 * 分析标签属性
 * @access public
 * @param  string   $str 属性字符串
 * @param  string   $name 不为空时返回指定的属性名
 * @return array
 */
Template->parseAttr($str, $name = NULL)


/**
 * 模板标签解析
 * 格式: {TagName:args [|content] }
 * @access private
 * @param  string $content 要解析的模板内容
 * @return void
 */
$this->parseTag(&$content)


/**
 * 模板变量解析,支持使用函数
 * 格式: {$varname|function1|function2=arg1,arg2}
 * @access public
 * @param  string $varStr 变量数据
 * @return void
 */
Template->parseVar(&$varStr)


/**
 * 对模板中使用了函数的变量进行解析
 * 格式 {$varname|function1|function2=arg1,arg2}
 * @access public
 * @param  string $varStr 变量字符串
 * @return void
 */
Template->parseVarFunction(&$varStr)


/**
 * 特殊模板变量解析
 * 格式 以 $Think. 打头的变量属于特殊模板变量
 * @access public
 * @param  array $vars 变量数组
 * @return string
 */
Template->parseThinkVar($vars)


/**
 * 分析加载的模板文件并读取内容 支持多个模板文件读取
 * @access private
 * @param  string $templateName 模板文件名
 * @return string
 */
$this->parseTemplateName($templateName)


/**
 * 解析模板文件名
 * @access private
 * @param  string $template 文件名
 * @return string|false
 */
$this->parseTemplateFile($template)


/**
 * 按标签生成正则
 * @access private
 * @param  string $tagName 标签名
 * @return string
 */
$this->getRegex($tagName)

Url

/**
 * URL生成 支持路由反射
 * @param string$url 路由地址
 * @param string|array  $vars 参数(支持数组和字符串)a=val&b=val2... ['a'=>'val1', 'b'=>'val2']
 * @param string|bool   $suffix 伪静态后缀,默认为true表示获取配置值
 * @param boolean|string$domain 是否显示域名 或者直接传入域名
 * @return string
 */
Url::build($url = '', $vars = '', $suffix = true, $domain = false)



self::parseUrl($url, &$domain)



self::parseDomain(&$url, $domain)



self::parseSuffix($suffix)



Url::getRuleUrl($rule, &$vars = [])



Url::root($root)

Validate

$Validate = new Validate();

/**
 * 实例化验证
 * @access public
 * @param array $rules 验证规则
 * @param array $message 验证提示信息
 * @param array $field 验证字段描述信息
 * @return Validate
 */
Validate::make($rules = [], $message = [], $field = [])


/**
 * 添加字段验证规则
 * @access protected
 * @param string|array  $name  字段名称或者规则数组
 * @param mixed $rule  验证规则
 * @return Validate
 */
Validate->rule($name, $rule = '')


/**
 * 注册验证(类型)规则
 * @access public
 * @param string$type  验证规则类型
 * @param mixed $callback callback方法(或闭包)
 * @return void
 */
Validate::extend($type, $callback = NULL)


/**
 * 获取验证规则的默认提示信息
 * @access protected
 * @param string|array  $type  验证规则类型名称或者数组
 * @param string$msg  验证提示信息
 * @return void
 */
Validate::setTypeMsg($type, $msg = NULL)


/**
 * 设置提示信息
 * @access public
 * @param string|array  $name  字段名称
 * @param string$message 提示信息
 * @return Validate
 */
Validate->message($name, $message = '')


/**
 * 设置验证场景
 * @access public
 * @param string|array  $name  场景名或者场景设置数组
 * @param mixed $fields 要验证的字段
 * @return Validate
 */
Validate->scene($name, $fields = NULL)


/**
 * 判断是否存在某个验证场景
 * @access public
 * @param string $name 场景名
 * @return bool
 */
Validate->hasScene($name)


/**
 * 设置批量验证
 * @access public
 * @param bool $batch  是否批量验证
 * @return Validate
 */
Validate->batch($batch = true)


/**
 * 数据自动验证
 * @access public
 * @param array $data  数据
 * @param mixed $rules  验证规则
 * @param string$scene 验证场景
 * @return bool
 */
Validate->check($data, $rules = [], $scene = '')


/**
 * 验证单个字段规则
 * @access protected
 * @param string$field  字段名
 * @param mixed $value  字段值
 * @param mixed $rules  验证规则
 * @param array $data  数据
 * @param string$title  字段描述
 * @param array $msg  提示信息
 * @return mixed
 */
$this->checkItem($field, $value, $rules, $data, $title = '', $msg = [])


/**
 * 验证是否和某个字段的值一致
 * @access protected
 * @param mixed $value 字段值
 * @param mixed $rule  验证规则
 * @param array $data  数据
 * @param string$field 字段名
 * @return bool
 */
$this->confirm($value, $rule, $data, $field = '')


/**
 * 验证是否和某个字段的值是否不同
 * @access protected
 * @param mixed $value 字段值
 * @param mixed $rule  验证规则
 * @param array $data  数据
 * @return bool
 */
$this->different($value, $rule, $data)


/**
 * 验证是否大于等于某个值
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @param array $data  数据
 * @return bool
 */
$this->egt($value, $rule, $data)


/**
 * 验证是否大于某个值
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @param array $data  数据
 * @return bool
 */
$this->gt($value, $rule, $data)


/**
 * 验证是否小于等于某个值
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @param array $data  数据
 * @return bool
 */
$this->elt($value, $rule, $data)


/**
 * 验证是否小于某个值
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @param array $data  数据
 * @return bool
 */
$this->lt($value, $rule, $data)


/**
 * 验证是否等于某个值
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @return bool
 */
$this->eq($value, $rule)


/**
 * 验证字段值是否为有效格式
 * @access protected
 * @param mixed $value  字段值
 * @param string$rule  验证规则
 * @param array $data  验证数据
 * @return bool
 */
$this->is($value, $rule, $data = [])



$this->getImageType($image)


/**
 * 验证是否为合格的域名或者IP 支持A,MX,NS,SOA,PTR,CNAME,AAAA,A6, SRV,NAPTR,TXT 或者 ANY类型
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @return bool
 */
$this->activeUrl($value, $rule)


/**
 * 验证是否有效IP
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则 ipv4 ipv6
 * @return bool
 */
$this->ip($value, $rule)


/**
 * 验证上传文件后缀
 * @access protected
 * @param mixed $file  上传文件
 * @param mixed $rule  验证规则
 * @return bool
 */
$this->fileExt($file, $rule)


/**
 * 验证上传文件类型
 * @access protected
 * @param mixed $file  上传文件
 * @param mixed $rule  验证规则
 * @return bool
 */
$this->fileMime($file, $rule)


/**
 * 验证上传文件大小
 * @access protected
 * @param mixed $file  上传文件
 * @param mixed $rule  验证规则
 * @return bool
 */
$this->fileSize($file, $rule)


/**
 * 验证图片的宽高及类型
 * @access protected
 * @param mixed $file  上传文件
 * @param mixed $rule  验证规则
 * @return bool
 */
$this->image($file, $rule)


/**
 * 验证请求类型
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @return bool
 */
$this->method($value, $rule)


/**
 * 验证时间和日期是否符合指定格式
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @return bool
 */
$this->dateFormat($value, $rule)


/**
 * 验证是否唯一
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则 格式:数据表,字段名,排除ID,主键名
 * @param array $data  数据
 * @param string$field  验证字段名
 * @return bool
 */
$this->unique($value, $rule, $data, $field)


/**
 * 使用行为类验证
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @param array $data  数据
 * @return mixed
 */
$this->behavior($value, $rule, $data)


/**
 * 使用filter_var方式验证
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @return bool
 */
$this->filter($value, $rule)


/**
 * 验证某个字段等于某个值的时候必须
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @param array $data  数据
 * @return bool
 */
$this->requireIf($value, $rule, $data)


/**
 * 通过回调方法验证某个字段是否必须
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @param array $data  数据
 * @return bool
 */
$this->requireCallback($value, $rule, $data)


/**
 * 验证某个字段有值的情况下必须
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @param array $data  数据
 * @return bool
 */
$this->requireWith($value, $rule, $data)


/**
 * 验证是否在范围内
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @return bool
 */
$this->in($value, $rule)


/**
 * 验证是否不在某个范围
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @return bool
 */
$this->notIn($value, $rule)


/**
 * between验证数据
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @return bool
 */
$this->between($value, $rule)


/**
 * 使用notbetween验证数据
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @return bool
 */
$this->notBetween($value, $rule)


/**
 * 验证数据长度
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @return bool
 */
$this->length($value, $rule)


/**
 * 验证数据最大长度
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @return bool
 */
$this->max($value, $rule)


/**
 * 验证数据最小长度
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @return bool
 */
$this->min($value, $rule)


/**
 * 验证日期
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @return bool
 */
$this->after($value, $rule)


/**
 * 验证日期
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @return bool
 */
$this->before($value, $rule)


/**
 * 验证有效期
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @return bool
 */
$this->expire($value, $rule)


/**
 * 验证IP许可
 * @access protected
 * @param string$value  字段值
 * @param mixed $rule  验证规则
 * @return mixed
 */
$this->allowIp($value, $rule)


/**
 * 验证IP禁用
 * @access protected
 * @param string$value  字段值
 * @param mixed $rule  验证规则
 * @return mixed
 */
$this->denyIp($value, $rule)


/**
 * 使用正则验证数据
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则 正则规则或者预定义正则名
 * @return mixed
 */
$this->regex($value, $rule)


/**
 * 验证表单令牌
 * @access protected
 * @param mixed $value  字段值
 * @param mixed $rule  验证规则
 * @param array $data  数据
 * @return bool
 */
$this->token($value, $rule, $data)



Validate->getError()


/**
 * 获取数据值
 * @access protected
 * @param array $data 数据
 * @param string $key 数据标识 支持二维
 * @return mixed
 */
$this->getDataValue($data, $key)


/**
 * 获取验证规则的错误提示信息
 * @access protected
 * @param string$attribute  字段英文名
 * @param string$title  字段描述名
 * @param string$type  验证规则名称
 * @param mixed $rule  验证规则数据
 * @return string
 */
$this->getRuleMsg($attribute, $title, $type, $rule)


/**
 * 获取数据验证的场景
 * @access protected
 * @param string $scene  验证场景
 * @return array
 */
$this->getScene($scene = '')



Validate::__callStatic($method, $params)

View

$View = new View();

/**
 * 初始化视图
 * @access public
 * @param array $engine  模板引擎参数
 * @param array $replace  字符串替换参数
 * @return object
 */
View::instance($engine = [], $replace = [])


/**
 * 模板变量静态赋值
 * @access public
 * @param mixed $name  变量名
 * @param mixed $value 变量值
 * @return void
 */
View::share($name, $value = '')


/**
 * 模板变量赋值
 * @access public
 * @param mixed $name  变量名
 * @param mixed $value 变量值
 * @return $this
 */
View->assign($name, $value = '')


/**
 * 设置当前模板解析的引擎
 * @access public
 * @param array|string $options 引擎参数
 * @return $this
 */
View->engine($options = [])


/**
 * 配置模板引擎
 * @access private
 * @param string|array  $name 参数名
 * @param mixed $value 参数值
 * @return void
 */
View->config($name, $value = NULL)


/**
 * 解析和获取模板内容 用于输出
 * @param string$template 模板文件名或者内容
 * @param array $vars 模板输出变量
 * @param array $replace 替换内容
 * @param array $config 模板参数
 * @param bool  $renderContent 是否渲染内容
 * @return string
 * @throws Exception
 */
View->fetch($template = '', $vars = [], $replace = [], $config = [], $renderContent = false)


/**
 * 视图内容替换
 * @access public
 * @param string|array  $content 被替换内容(支持批量替换)
 * @param string$replace替换内容
 * @return $this
 */
View->replace($content, $replace = '')


/**
 * 渲染内容输出
 * @access public
 * @param string $content 内容
 * @param array  $vars模板输出变量
 * @param array  $replace 替换内容
 * @param array  $config 模板参数
 * @return mixed
 */
View->display($content, $vars = [], $replace = [], $config = [])


/**
 * 模板变量赋值
 * @access public
 * @param string$name  变量名
 * @param mixed $value 变量值
 */
View->__set($name, $value)


/**
 * 取得模板显示变量的值
 * @access protected
 * @param string $name 模板变量
 * @return mixed
 */
View->__get($name)


/**
 * 检测模板变量是否设置
 * @access public
 * @param string $name 模板变量名
 * @return bool
 */
View->__isset($name)