laravel中composer拓展包的开发

本文介绍了如何将自定义的Composer扩展包转化为Laravel门面,以便在项目中无缝集成并实现自动更新。涉及服务提供者、门面类和配置,展示了完整的开发流程和实战示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引入拓展包

这里使用的laravel版本为5.6版本,引入我们前面已经开发好的拓展包

composer require superkingm/math v2.0

在控制器中进行简单的使用,这里在编辑器里面能够显示参数,并且能有提示

在这里插入图片描述
vendor\superkingm文件夹中能找到我们的拓展包,拓展包非常的简单,只有一个Math
在这里插入图片描述

改造成laravel拓展包

上面是原始的composer拓展包,我们需要在控制器中先要进行实例化才能进行使用。在laravel的门面中,是可以直接的进行使用,这里我们就改造成laravel门面的方式进行调用。

直接在laravel项目中改造我们的拓展包,因为要继承laravel 的服务和门面,在项目中比较好开发,开发完毕后,我们再独立出来,提交我们的拓展包

使用laravel中的门面需要我们先注册服务的方式来实例化类,再使用门面在服务中调用

  • 新建服务在Math文件夹下新建Provider文件夹,并新建服务MathServiceProvider.php
<?php

namespace Math\Provider;

use Illuminate\Support\ServiceProvider;
use Math\Math;

class MathServiceProvider extends ServiceProvider
{

    public function register()
    {
        $this->app->bind('math', function ($app) {
            return new Math();
        });
    }

}

新建门面Math.php

<?php

namespace Math\Provider;


use Illuminate\Support\Facades\Facade;

class Math extends Facade
{
    protected static function getFacadeAccessor()
    {
        return 'math';
    }


}

config\app.phpprovidersaliases中分别进行配置

\Math\Provider\MathServiceProvider::class,
‘Math’ =>\Math\Provider\Math::class

控制器中使用

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Math;


class IndexController extends Controller
{
    public function index()
    {
        return Math::sum(1, 3);
    }
}

拓展包提交与使用

我们将开发好的拓展包在vendor文件夹进行提取出来进行提交到github仓库,详细见前面所提到的。

我们使用我们已经开发好的拓展包来验证是否成功

composer require superkingm/math v3.0

在config\app.php中进行配置,并在控制器中使用

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Math;


class IndexController extends Controller
{
    public function index()
    {
        return [Math::sum(1, 3),Math::sub(87,12),Math::mult(7,8),Math::div(56,7)];
    }
}

在这里插入图片描述

到此我们适合laravel门面的拓展包就已经开发完毕了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值