laravel 创建帮助类helper

1.创建 app/Helpers/functions.php文件(右键创建)
2.修改 composer.json文件

“autoload”: {
“classmap”: [
“database/seeds”,
“database/factories”
],
“psr-4”: {
“App\”: “app/”
},
/添加的 files 键******************************************
“files”: [
“app/Helpers/functions.php” //这个就是第一步创建的文件路径
]
},

3.执行命令 composer dump-autoload
4.复制以下代码到functions.php,或者重新自定义

<?php /** * 全局函数 * User: rui * Date: 18-6-25 * Time: 下午5:40 */ if (!function_exists('throwCustomException')) { /** * 抛出项目异常的方法 * @param $exceptionErrorCode * @param array $data * @throws \App\Exceptions\CustomException * @bool $logging 是否记录日志 */ function throwCustomException ($exceptionErrorCode, array $data = [], bool $logging = true) { // 异常信息 $message = \App\Exceptions\ExceptionErrorCode::CONTAINER[$exceptionErrorCode]; // 抛出自定义异常 throw new \App\Exceptions\CustomException($message, $exceptionErrorCode, $data, $logging); } } if (!function_exists('responseMessage')) { /** * 返回响应数据 * @param array $data * @param string $message * @return \Illuminate\Http\JsonResponse */ function responseMessage ($data = [], string $message = '', bool $doMysqlLog = false) { // 成功响应码获取 $code = \App\Exceptions\ExceptionErrorCode::OPERATOR_OK; // 返回信息设置 $return = json_encode([ 'code' => $code, 'message' => $message ?: \App\Exceptions\ExceptionErrorCode::CONTAINER[$code], 'data' => $data, ]); if ($doMysqlLog) { // 执行数据记录 doMysqlLog(null, $return); } // 返回响应数据 return $return; } } if (!function_exists('makeReturnData')) { /** * 返回响应数据 * @param array $data * @param string $message * @return \Illuminate\Http\JsonResponse */ function makeReturnData ($code, $message, $data = array()) { return json_encode(['code' => $code, 'message' => $message, 'data' => $data]); } } if (!function_exists('getMassage')) { /** * 获得响应数据结果 * @param array $data * @param string $message * @return \Illuminate\Http\JsonResponse */ function getMassage (string $exceptionErrorCode = '',array $data = []) { // 成功响应码获取 $message = \App\Exceptions\ExceptionErrorCode::CONTAINER[$exceptionErrorCode]; // 返回信息设置 $return = [ 'code' => $exceptionErrorCode, 'message' => $message ?: \App\Exceptions\ExceptionErrorCode::CONTAINER[$exceptionErrorCode], 'data' => $data, ]; // 返回响应数据 return $return; } } if (!function_exists('doMysqlLog')) { /** * 执行操作的数据库记录 * * @param \Illuminate\Http\Request $request * @param Exception $exception * @throws ReflectionException */ function doMysqlLog (Exception $exception=null, string $responseMessage=null) { // //设置数据库logger // $logger = new \Monolog\Logger('mysql-log'); // // // 获取request对象 // $request = request(); // // 获取要记录的数据 // $paperLogs = new \App\Helper\Logs\PaperLogInfo($request, $exception, $responseMessage); // // // 添加mysql-logger // $logger -> pushHandler(new \App\Helper\Logs\MysqlHandler()); // // // 记录错误 // $logger->log(\Monolog\Logger::DEBUG, '',$paperLogs->paper()); } } if (!function_exists('wipeOutNullField')) { /** * 去除空字段数据 * * @param $value * @return bool */ function wipeOutNullField ($value) { return !is_null($value); } } if (!function_exists('setUuids')) { /** * 为数组数据设置uuid的键 * * @param array $data */ function setUuids (array &$data, $cloumn = 'id', array $others = array()) { foreach ($data as $key => $row) { if (is_array($row)) { setUuids($data[$key], $cloumn, $others); } else { $data[$cloumn] = \Ramsey\Uuid\Uuid::uuid4()->toString(); if ($others) { $data = array_merge($data, $others); } } } } } if (! function_exists('transferredParams')) { /** * 将请求参数中的小驼峰类型参数进行转义获取 * * @param \Illuminate\Http\Request $request * @param array $params * @param string $delimiter * @return array */ function transferredParams (\Illuminate\Http\Request $request, array $params, string $delimiter = '_'):array { $result = array(); $info = $request->only($params); foreach ($info as $key => $value) { $newKey = \Illuminate\Support\Str::snake($key, $delimiter); if (!is_null($value)) { $result[$newKey] = $value; } } return $result; } } if (! function_exists('searchMultiArray')) { /** * 在模型集合对象中获取指定的键, 返回数组数据 * * @param $collection * @param $search * @param string $mode * @return array */ function searchMultiArray($collection, $search, $mode = 'key'):array { $array = $collection->toArray(); $res = array(); foreach (new \RecursiveIteratorIterator(new \RecursiveArrayIterator($array)) as $key => $value) { if ($search === ${${"mode"}}) { if ($mode == 'key') { $res[] = $value; } else { $res[] = $key; } } } return $res; } } if (! function_exists('createOrderNo')) { /** * 生成订单号,100000个同时并发不会重复 * * @param $collection * @param $search * @param string $mode * @return array */ function createOrderNo() { $dateTime = date("YmdHis"); // 格式化当前时间戳 $reqNoKey = 'requestTimes_' . $dateTime; // 设置redis键值,每秒钟的请求次数 $reqNo = \Illuminate\Support\Facades\Redis::incr($reqNoKey); // 将redis值加1 \Illuminate\Support\Facades\Redis::expire($reqNoKey, 5); // 设置redis过期时间,避免垃圾数据过多 $reqNo = 100000 + $reqNo; // 补齐订单号长度 $orderNo = $dateTime . $reqNo; // 生成订单号 return $orderNo; } } if (! function_exists('curl_get')) { /** * get curl方式 * * @param \Illuminate\Http\Request $request * @param array $params * @param string $timeout * @return array */ function curl_get($url, array $params = array(), $timeout = 5) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $file_contents = curl_exec($ch); curl_close($ch); return $file_contents; } } if (! function_exists('curl_post')) { /** * post curl方式 * * @param \Illuminate\Http\Request $request * @param array $params * @param string $timeout * @return array */ function curl_post($url, $params = array(), $timeout=5) { $ch = curl_init();//初始化 curl_setopt($ch, CURLOPT_URL, $url);//抓取指定网页 curl_setopt($ch, CURLOPT_HEADER, 0);//设置header curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt($ch, CURLOPT_POST, 1);//post提交方式 curl_setopt($ch, CURLOPT_POSTFIELDS, $params); $data = curl_exec($ch);//运行curl curl_close($ch); return ($data); } } 5.使用示例(接口中直接调用): $result = QrModel::where('id','<','7')->select()->get(); return responseMessage($result ? $result->toArray() : [],ExceptionErrorCode::OPERATOR_OK); PS: https://blog.csdn.net/qq_22227087/article/details/81975625
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值