通知短信+运营短信,5秒速达,支持群发助手一键发送🚀高效触达和通知客户 广告
[TOC] ## 1 辅助函数文件函数列表(thinkphp\helper.php) ~~~ function A($name, $layer = CONTROLLER_LAYER) { return \think\Loader::controller($name, $layer); } ~~~ ~~~ function C($name = '', $value = null, $range = '') { if (is_null($value) && is_string($name)) { return \think\Config::get($name, $range); } else { return \think\Config::set($name, $value, $range); } } ~~~ ~~~ function cookie($name, $value = '') { if (is_array($name)) { // 初始化 \think\Cookie::init($name); } elseif (is_null($name)) { // 清除 \think\Cookie::clear($value); } elseif ('' === $value) { // 获取 return \think\Cookie::get($name); } elseif (is_null($value)) { // 删除session return \think\Cookie::delete($name); } else { // 设置session return \think\Cookie::set($name, $value); } } ~~~ ~~~ function D($name = '', $layer = MODEL_LAYER) { return \think\Loader::model($name, $layer); } ~~~ ~~~ function dump($var, $echo = true, $label = null) { return \think\Debug::dump($var, $echo, $label); } ~~~ ~~~ function db($config = []) { return \think\Db::connect($config); } ~~~ ~~~ function E($msg, $code = 0) { throw new \think\Exception($msg, $code); } ~~~ ~~~ function G($start, $end = '', $dec = 6) { if ('' == $end) { \think\Debug::remark($start); } else { return 'm' == $dec ? \think\Debug::getRangeMem($start, $end) : \think\Debug::getRangeTime($start, $end, $dec); } } ~~~ ~~~ function I($key, $default = null, $filter = '', $merge = false) { if (0 === strpos($key, '?')) { $key = substr($key, 1); $has = '?'; } else { $has = ''; } if ($pos = strpos($key, '.')) { $method = substr($key, 0, $pos); if (in_array($method, ['get', 'post', 'put', 'delete', 'param', 'request', 'session', 'cookie', 'server', 'globals', 'env', 'path', 'file'])) { $key = substr($key, $pos + 1); } else { $method = 'param'; } } else { $method = 'param'; } return \think\Input::$method($has . $key, $default, $filter, $merge); } ~~~ ~~~ function import($class, $baseUrl = '', $ext = EXT) { return \think\Loader::import($class, $baseUrl, $ext); } ~~~ ~~~ function L($name, $vars = [], $lang = '') { return \think\Lang::get($name, $vars, $lang); } ~~~ ~~~ function M($name = '', $tablePrefix = null, $connection = '') { return \think\Loader::table($name, ['prefix' => $tablePrefix, 'connection' => $connection]); } ~~~ ~~~ function R($url, $vars = [], $layer = CONTROLLER_LAYER) { return \think\Loader::action($url, $vars, $layer); } ~~~ ~~~ function S($name, $value = '', $options = null) { if (is_array($options)) { \think\Cache::connect($options); } elseif (is_array($name)) { return \think\Cache::connect($name); } if ('' === $value) { return \think\Cache::get($name); } elseif (is_null($value)) { return \think\Cache::rm($name); } else { if (is_array($options)) { $expire = isset($options['expire']) ? $options['expire'] : null; } else { $expire = is_numeric($options) ? $options : null; } return \think\Cache::set($name, $value, $expire); } } ~~~ ~~~ function session($name, $value = '') { if (is_array($name)) { \think\Session::init($name); } elseif (is_null($name)) { \think\Session::clear($value); } elseif ('' === $value) { return \think\Session::get($name); } elseif (is_null($value)) { return \think\Session::delete($name); } else { return \think\Session::set($name, $value); } } ~~~ ~~~ function T($class, $ext = EXT) { return \think\Loader::import($class, TRAIT_PATH, $ext); } ~~~ ~~~ function trace($log = '[think]', $level = 'log') { if ('[think]' === $log) { return \think\Log::getLog(); } else { \think\Log::record($log, $level); } } ~~~ ~~~ function U($url, $vars = '', $suffix = true, $domain = false) { return \think\Url::build($url, $vars, $suffix, $domain); } ~~~ ~~~ function V($template = '', $vars = []) { return \think\View::instance(\think\Config::get())->fetch($template, $vars); } ~~~ ~~~ function vendor($class, $ext = EXT) { return \think\Loader::import($class, VENDOR_PATH, $ext); } ~~~ ~~~ function W($name, $data = []) { return \think\Loader::action($name, $data, 'Widget'); } ~~~ ## 2 分析 1 `A() ` 调用Loader::controller,创建控制器实例。 >$name:控制器名称 $layer:控制层 Loader分析见另:自动加载器实例化 * * * * * 2 `C()` 调用Config::get() Config::set()操作配置参数 >$name:配置参数名称 $value:配置参数值,为空则get获取,否则set设置 $range:参数作用域 Config分析见附:全局配置文件 * * * * * `cookie()` 调用think\Cookie操作cookie数据 >$name: >>数组:初始化cookie 为空:清除cookie >$value: >> null : 删除session ' ' : 获取cookie的$name 其他 : 设置cookie的$name的值 Cookie分析见另:Cookie.php文件 * * * * * 3 `D()` 调用Loader::model()创建数据模型对象 >$name:数据模型名称 $layer:数据模型业务层 Loader分析见另:自动加载器实例化 * * * * * `dump()` 调用Debug::dump()格式化友好输出数据 >$var: 输出数据 $echo: treu,直接输出;false,返回结果 $label:标签控制 Debug分析见另:Debug.php文件 * * * * * `db()` 调用Db::connect()创建数据库连接对象 >$config:数据库连接配置 Db分析见 另:Db.php文件 * * * * * 4 `E()` 调用Exception()抛出异常 >$msg:异常消息 $code:异常代码,默认为0 Exception分析见Exception.php文件 5 `G()` 调用Debug::remark()记录资源使用情况 >$start:开始标签 $end:结束标签 $desc:小数位 Debug文件分析见另:Debug.php文件 6 `I()` 调用think\Input获取输入数据, >$key:键名[get.xx,表明参数来源,] $default:默认值 $filter:过滤出来 $merge: Input文件分析见另:Input.php文件 * * * * * `import()` 调用Loader快速导入类库 * * * * * 7 `L()` 调用Lang::get()获取语言变量配置 > $name:语言变量名称 > $vars: > $lang: Lang分析见 另:Lang.php文件 * * * * * 8 `M()` 调用Loader::table()创建模型对象 > $name: 模型名称 > $tablePrefix: 数据表前缀 > $connection 数据库连接信息 * * * * * 9 `R()` 到普Loader::action()远程调用控制器的操作 > $url:模块/控制器/方法url > $vars:调用参数 > $layer: * * * * * 10 `S()` 调用Cache实现缓存 > $name:缓存名称 > $value:缓存数据 > $options:缓存参数 Cache分析见另:Cache.php文件 * * * * * 11 `T()` 调用Loader快速导入Traits > $class:trait库 > $ext:文件后缀 Traits的原理见基础原理的php的trait * * * * * `trace()` 调用Log操作日志细心 > $log:log字符串 > $level:日志级别 Log分析见另:log.php文件 * * * * * 12 `U()` 调用Url生成url > $url,基础url > $vars,参数 > $suffix, > $domain, Url分析见另:Url.php文件 * * * * * 13 `V()` 快速创建视图对象, > $template:文件名称 > $vars:模板变量 View分析见V:视图渲染文件 * * * * * `venodr()` 调用Loader快速导入插件 * * * * * 14 `W()` 调用Loader::Action(),渲染输出Widget组件 > $name:Widget名称 > $data:参数 ## 3 总结 26个字母中除 B,F,H,J,K,N,O,P,Q,X,Y,Z外实现了14个单字母函数。 2个导入函数import,vendor 2个通信函数session,cookie 2个调试函数dump,trace 1个数据库函数db 总共21个辅助函数。