第一步:在app目录下建立Common文件夹,在文件夹中创建helpers.php

第二步:在artisan中引入require __DIR__.'/app/Common/helpers.php';自动加载

第三步:在public目录下的index.php文件中加入require __DIR__.'/../app/Common/helpers.php';

此时你可以在任意类,模板中使用自定义方法:

例:

<?php

namespace {

use Illuminate\Support\Debug\Dumper;
    use Illuminate\Container\Container;

if (!function_exists('is_wechat')) {
        function is_wechat()
        {
            $result = isset($_SERVER['HTTP_USER_AGENT']) ?
                strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') : false;
            return $result !== false;
        }
    }

if (!function_exists('dump')) {
        function dump()
        {
            array_map(function ($x) {
                (new Dumper)->dump($x);
            }, func_get_args());
        }
    }

if (!function_exists('db_escape')) {
        function db_escape($value, $escape_char = '\\', $charsets = ['%', '_'])
        {
            $escaped = [];

foreach ($charsets as $c) {
                $escaped[$c] = $escape_char . $c;
            }
            //$escaped[$escape_char] = $escape_char . $escape_char;

return strtr($value, $escaped);
        }
    }

if (!function_exists('asset')) {
        function asset($path, $secure = null)
        {
            $pathinfo = pathinfo($path);
            if ($pathinfo && isset($pathinfo['extension']) && ('css' === $pathinfo['extension'])) {
                $appVersion = Container::getInstance()->make('config')->get('config.app_version', time());

$path .= "?_v=$appVersion";
            }

return Container::getInstance()->make('url')->asset($path, $secure);
        }
    }

if (!function_exists('format_json_success')) {
        function format_json_success($body = null)
        {
            return array(
                'body' => $body,
                'status' => 'SUCCESS',
            );
        }
    }

if (!function_exists('format_json_failed')) {
        function format_json_failed($error = 'internal_error', $data = [], $status = 'FAILED')
        {
            $error = trans()->has('errors.' . $error) ? trans('errors.' . $error) : $error;
            $body = array_merge(['error' => $error], $data);
            return array(
                'body' => $body,
                'status' => $status,
            );
        }
    }

if (!function_exists('get_ip')) {
        function get_ip($ip2long = false)
        {
            $ip = null;
            if (!$ip && getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
                $ip = getenv('HTTP_CLIENT_IP');
            }
            if (!$ip && getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
                $ips = explode(',', getenv('HTTP_X_FORWARDED_FOR'));
                if (count($ips) > 0) {
                    $ip = trim($ips[0]);
                }
            }
            if (!$ip && getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
                $ip = getenv('REMOTE_ADDR');
            }
            if (!$ip && isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
                $ip = $_SERVER['REMOTE_ADDR'];
            }
            if (!$ip) {
                $ip = "0.0.0.0";
            }

return $ip2long ? ip2long($ip) : $ip;
        }
    }

if (!function_exists('format_currency')) {
        function format_currency($amount, $decimals = 2, $dec_point = '.' , $thousands_sep = ',')
        {
            return number_format($amount, $decimals, $dec_point, $thousands_sep);
        }
    }

if (!function_exists('now')) {
        function now()
        {
            return date('Y-m-d H:i:s');
        }
    }

if (!function_exists('json_encode_unicode')) {
        function json_encode_unicode($data, $options = 0)
        {
            if (defined('JSON_UNESCAPED_UNICODE')) {
                return json_encode($data, JSON_UNESCAPED_UNICODE | $options);
            }

return preg_replace_callback('/(?<!\\\\)\\\\u([0-9a-f]{4})/i',
                function ($m) {
                    $d = pack('H*', $m[1]);
                    $r = mb_convert_encoding($d, 'UTF8', 'UTF-16BE');
                    return $r !== "?" && $r !== "" ? $r : $m[0];
                }, json_encode($data, $options)
            );
        }
    }
}

namespace Api {

function format_json_success($body = null)
    {
        return $body;
    }

function format_json_failed($code, $error = '', $data = [])
    {
        if (!$error) {
            $error = trans()->has('errors.code.' . $code)
                ? trans('errors.code.' . $code)
                : trans('errors.internal_error');
        } else {
            $error = trans()->has('errors.' . $error)
                ? trans('errors.' . $error)
                : $error;
        }

$body = [
            'code' => $code,
            'message' => $error,
        ];
        $body = array_merge($body, $data);
        return $body;
    }

function is_mobile($value)
    {
        return preg_match('/^1\d{10}$/', $value);
    }

function date_format($date, $format = 'Y-m-d H:m:s')
    {
        return $date ? $date->format($format) : '';
    }
}

Laravel 添加自定义全局函数相关推荐

  1. php助手函数自定义,Laravel 添加自定义助手函数

    前言 在学习完教程中添加自定义助手函数文件时,还是得记录一下,感觉对composer知道的东西太少了,一些命令到底做了什么还是不知道,总结一下. 添加自定义助手函数文件 在开发项目的时候,有时候会定义 ...

  2. laravel引入自定义全局函数

    laravel引入全局函数 1.新建文件app/Helper/functions.php 2.在functions.php自定义函数 3.在/composer.json中在加载文件 "aut ...

  3. laravel 中创建全局函数 (类似于 TP 中 functions.php) 的方式

    最近,在使用Laravel写东西,因为框架本身的设计理念的不同,刚从ThinPHP3切换到Laravel5,感觉还是很怪的,各种不习惯,但是一旦写过一些代码,发现Laravel真的非常好用.我一直觉得 ...

  4. Laravel-自定全局函数

    Laravel-自定全局函数 标签(空格分隔): php 习惯了 使用 ThinkPHP 框架,有一个公共方法类在代码编写上会快捷很多,所以有必要在此进行配置一番. 实现 在 app 创建文件夹 He ...

  5. javascript的Math对象和全局函数

    Math方法 表示数学的运算 静态方法,使用时Math.方法(): 常用: ceil ():向上舍入 floor ():向下舍入 round ():四舍五入 random ():伪随机数(0.1-1. ...

  6. 函数指针--全局函数指针与类的函数指针(二)

    本次对之前的说明做个补充,大体内容还是一样的. 这里对类里面的成员函数指针变量的使用继续进行了解,最主要的是希望能达到通过非静态成员指针变量来引用各自的非静态成员函数. 这样每个实例可以保存当前对象对 ...

  7. JS(内置对象,全局函数,事件,事件对象)

    目录 内置对象 全局函数 事件 事件对象 内置对象 <!DOCTYPE html> <html><head><meta charset="utf-8 ...

  8. 在C++工程中设置全局函数

    在头文件中对该函数进行全局函数的声明: extern void Test(); 在cpp文件中进行函数的定义: void Test() {MessageBox(NULL,L"调用了C++的全 ...

  9. C++中如何访问全局变量和全局函数

    全局变量和全局函数是相对局部变量和局部函数而言的,不在{}或者for, if 等范围内的都是全局变量或者全局函数,最简单的是在同一个文件中去声明. 例如在mian.cpp中 #include < ...

最新文章

  1. 服务器不显示磁盘柜,磁盘柜与服务器的关系
  2. 2020兰大计算机学硕线,兰州大学2020年硕士研究生招生复试分数线
  3. 4.1 基础-放苹果(整数划分)
  4. Oracle connet by prior 关键字的简单介绍和用法
  5. 7.01面试长沙黄花机场
  6. Facebook批量优化360照片
  7. 【caffe-matlab】权重以及特征图的可视化
  8. Get和Post请求和对应的参数获取
  9. 开发经验分享_03_解决问题3步走(思路)
  10. 吴恩达CS 230深度学习课开学了!秋季视频全部上线,课件小抄应有尽有
  11. Java代码:调用外部接口(使用Json格式传递参数)的方法
  12. java代码获取系统时间相差8小时
  13. OpenCV(0)---机器学习库
  14. html图片在桌面的路径,桌面路径无法恢复以前的路径
  15. textbox提示文字属性_《我来自江湖》MUD类武侠题材多样性玩法的单机文字游戏...
  16. 21年年后离职找工作的随笔杂谈
  17. 印度软件腾飞不是偶然
  18. 文远知行杯广东工业大学第十六届程序设计竞赛 E爬塔
  19. echarts添加基准线
  20. RTSP 协议详细介绍

热门文章

  1. 南昌治疗糖尿病的医院
  2. 如此完整的模具设计流程,不收藏都不行
  3. CVX——begin和end
  4. 使用Springboot maven overlays 多模块打包
  5. 【102】汉典诗词-汉典系列的古诗词检索平台
  6. python实现多语言语种识别_python langid实现语种识别
  7. 整数划分java_整数划分问题及其算法
  8. autohotkey --- 热键只对特定程序生效,并设置不同等级的搜索功能
  9. ad软件 pcb如何走线过孔_PCB布局布线技巧总结
  10. sql注入 union联合查询注入(超详细)