laravel 如何实现 Tp 里面的 common 自定义函数,不用配置composer.json,一次教会你

1.看过网上很多例子,都是用composer.json去弄,个人觉得很麻烦,所以用了另一种方法,首先执行一下命令

php artisan make:provider HelperServiceProvider

2.app\Providers 会出现刚才创建的文件,然后我们在register()方法里面添加如下代码

$helpersPath = app_path('Helpers');
foreach (glob("$helpersPath/*.php") as $file) {
    require_once $file;
}
            

3.看下完整的代码

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class SdkServiceProvider extends ServiceProvider
{
    /**
     * Register services.
     *
     * @return void
     */
    public function register()
    {
        //
        $SdkPath = app_path('Sdk');
        foreach (glob("$SdkPath/*/*.php") as $file) {
            require_once $file;
        }
    }
}

4.第四步就是在config/app.php 里面的 providers 里面配置一下,记得放在 AppServiceProvider 前面

'providers' => [
    
        // ....

        App\Providers\HelperServiceProvider::class,

        App\Providers\AppServiceProvider::class,
        App\Providers\AuthServiceProvider::class,
        // App\Providers\BroadcastServiceProvider::class,
        App\Providers\EventServiceProvider::class,
        App\Providers\RouteServiceProvider::class,

    ],

5.在app目录下创建Helpers文件夹(这里不一定是这个名字,你可以自己定义其他名字,不过需要和第二步的配置目录地址文件夹一致的名字)

6.在Helpers文件夹下面创建php函数,比如创建common.php,然后开始编写函数即可

<?php
if (!function_exists('pf')) {
    function pf($param) {

        echo '<pre>';
        print_r($param);
    }
}

7.在action里面直接调用即可,无需引入命名空间,原理和tp是一样的

8.通过以上方法,你还可以封装自己的sdk,当然有人会说sdk不都是用composer嘛,我只能说,不是所有第三方对接公司都有,很多时候人家demo都没有,全靠看人家的文档手搓sdk

 

posted @ 2025-04-10 11:37  正义的棒棒糖  阅读(17)  评论(0)    收藏  举报