为了账号安全,请及时绑定邮箱和手机立即绑定

helper.php-1

标签:
PHP

//------------------------

// ThinkPHP 助手函数

//-------------------------

 

use think\Cache;// 加载 Cache 类型

use think\Config;// 加载配置文件类

use think\Cookie;// 加载 Cookie

use think\Db;// 加载 Db

use think\Debug;// 加载 Debug

use think\exception\HttpException;// 加载 异常

use think\exception\HttpResponseException;// 加载 异常

use think\Lang;// 加载 语言

use think\Loader;// 加载 加载文件

use think\Log;// 加载 日志

use think\Request;// 请求

use think\Response;// 回应

use think\Session;//Session

use think\Url;// Url

use think\View;// View

 

// 作为一个helper 使用了很多的 东西

// a new namespace 用法

 

if (!function_exists('load_trait')) {

    /**

     * 快速导入Traits PHP5.5以上无需调用

     * @param string    $class trait库

     * @param string    $ext 类库后缀

     * @return boolean

     */

    function load_trait($class, $ext = EXT)

    {

        return Loader::import($class, TRAIT_PATH, $ext);// a trap function about this loader class and this import function

    }// 加载文件,按照 不同的 标准类型

}

 

if (!function_exists('exception')) {

    /**

     * 抛出异常处理

     *

     * @param string    $msg  异常消息

     * @param integer   $code 异常代码 默认为0

     * @param string    $exception 异常类

     *

     * @throws Exception

     */

    function exception($msg, $code = 0, $exception = '')

    {

        $e = $exception ?: '\think\Exception';// 使用异常处理类

        throw new $e($msg, $code);//抛出 新异常

    }// 异常 出来

}

 

if (!function_exists('debug')) {

    /**

     * 记录时间(微秒)和内存使用情况

     * @param string            $start 开始标签

     * @param string            $end 结束标签

     * @param integer|string    $dec 小数位 如果是m 表示统计内存占用

     * @return mixed

     */

    function debug($start, $end = '', $dec = 6)

    {

        if ('' == $end) {

            Debug::remark($start);// Debug::

        } else {

            return 'm' == $dec ? Debug::getRangeMem($start, $end) : Debug::getRangeTime($start, $end, $dec);

        }// 如果是 m 的话,则记录的是 getRangeMem

    }

}

 

if (!function_exists('lang')) {

    /**

     * 获取语言变量值

     * @param string    $name 语言变量名

     * @param array     $vars 动态变量值

     * @param string    $lang 语言

     * @return mixed

     */

    function lang($name, $vars = [], $lang = '')

    {

        return Lang::get($name, $vars, $lang);// 获取语言配置, 对类的二次封装

        // 这个版本 对比 3的版本 发现了 更多功能隐藏在了 class 里面,更多的面向对象了

    }

}

 

if (!function_exists('config')) {

    /**

     * 获取和设置配置参数

     * @param string|array  $name 参数名

     * @param mixed         $value 参数值

     * @param string        $range 作用域

     * @return mixed

     */

    function config($name = '', $value = null, $range = '')

    {

        if (is_null($value) && is_string($name)) {

            return 0 === strpos($name, '?') ? Config::has(substr($name, 1), $range) : Config::get($name, $range);

            // 中国 第一 超强 配置,太牛叉了,不错 通过不同的配置项,让 自己的函数 具有更强的功能

        } else {

            return Config::set($name, $value, $range);// other 否则 去设置 对应的 文件

        }

    }

}

 

if (!function_exists('input')) {

    /**

     * 获取输入数据 支持默认值和过滤

     * @param string    $key 获取的变量名

     * @param mixed     $default 默认值

     * @param string    $filter 过滤方法

     * @return mixed

     */

    function input($key = '', $default = null, $filter = null)

    {

        if (0 === strpos($key, '?')) {

            $key = substr($key, 1);

            $has = true;

        }// 判读 时候 包含 这个 输入 input 好巴适,去掉了 更多 浮躁,更多的融入了这个代码

        if ($pos = strpos($key, '.')) {// 如果有这些 比如 input('get.ok')

            // 指定参数来源

            $method = substr($key, 0, $pos);

            if (in_array($method, ['get', 'post', 'put', 'patch', 'delete', 'param', 'request', 'session', 'cookie', 'server', 'env', 'path', 'file'])) {

                $key = substr($key, $pos + 1);

            } else {

                $method = 'param';

            }

            // 当非明确来源的时候,显示通用的来源

        } else {

            // 默认为自动判断

            $method = 'param';// 默认也是这个

        }

        if (isset($has)) {

            return request()->has($key, $method, $default);// 如果是 ?get.ok 去判读是否有这个

        } else {

            return request()->$method($key, $default, $filter);// 否则返回数据

            // 比如 request()->get('ok','123','htmlspechialchar');

        }

    }

}

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消