Laravel9 常用自定义函数部署应用(1)

平时写代码总有一些习惯的函数,如生成随机值:

/**
* 随机值
* @param $len 长度
* @return  string
*/
function randomStr($len){
    return Str::random($len);
}

1、自定义函数放置路径:
app/Helpers/function.php
app/Helpers/common.php
app/Helpers/constants.php
function.php|common.php|constants.php 放自己自定义的函数

2、如何控制器使用和引用
引用设置:
App\Providers\目录下,新建文件:HelperServiceProvider.php
代码如下:

namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class HelperServiceProvider extends ServiceProvider
{
    /**
     * Register services. 批量关联引用了app/Helpers/目录下的文件
     * @author wilson lee
     * @return void
     */
    public function register()
    {
        foreach (glob(app_path('Helpers') . '/*.' . 'php') as $file) {
            require_once $file;
        }
    }
    /**
     * Bootstrap services.
     * @return void
     */
    public function boot()
    {
    }
}

app\config\app.php 里找到

'providers' => [
 //..原来内容...
 //..原来内容...
 App\Providers\HelperServiceProvider::class, // 增加部分
]

加上:“App\Providers\HelperServiceProvider::class,”

在App\Http\Controllers\CategoriesController.php 里调用

<?php
namespace App\Http\Controllers;
use App\Services\CategoriesService;//接口业务逻辑处理
use App\Traits\ApiResponse;//统一处理数据格式
use Illuminate\Http\Request;

/**
 * Categories 接口控制器
 * @desc 分类模块
 */
class CategoriesController extends Controller
{
    use ApiResponse; //统一处理数据格式--引用

    protected $service;

    public function __construct()
    {
        $this->service = new CategoriesService();//接口业务逻辑处理--引用
    }

    /**
     * 分类:新增单条数据
     * @desc 权限:-
     * @return int 新增ID
     * @method POST
     */
    public function store(Request $request)
    {
        $fields = verifyInputParams($request, $this->getRules()['store']);
        $result = $this->service->store($fields);
        return $this->formatUniteResult($result);
        //统一处理数据格式--调用ApiResponse->formatUniteResult($result)
    }
}

函数名:verifyInputParams,功能:校验输入参数,是否必填、属性、默认值、最大值、最小值, 此函数我放在了app/Helpers/function.php 中,你也可以根据你的习惯放在app/Helpers/目录下的任何文件中,因为我们已经写好了,批量引用,注意的是,函数名称不能重名,会冲突报错的。

此方法我也网上搜索所得,供新手学习。

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 1

建议了解 composer autoload files

1个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!