Laravel扩展包的开发

扩展包的开发

1. 创建一个新项目,初始化扩展包配置

首先创建一个全新的Laravel项目:

composer create-project --prefer-dist laravel/laravel laravelPkg

接下来,在项目中创建目录package/{your_name}/{your_package_name}

mkdir -p packages/zhxlan/laradmin

进入到这个目录,执行composer init

cd packages/zhxlan/laradmin
composer init

接下来的就是看你具体的配置包信息了。执行完成后会生成一个composer文件。

{
    "name": "zhxlan/laradmin",
    "authors": [
        {
            "name": "zhx",
            "email": "zhx.0830@qq.com"
        }
    ],
    "require": {}
}

2. 创建扩展包基本目录,文件

一般情况下,我会创建一下的目录

packages/zhxlan/laradmin
├── composer.json
├── src
└── tests

3. 修改扩展包 composer 配置

然后修改我们这个扩展包的composer.json文件,设置一下自动加载配置、以及扩展包的命名空间。

{
    "name": "zhxlan/laradmin",
    "description": "",
    "keywords": ["laravel", "laradmin"],
    "autoload": {
        "psr-4": {
            "Zhxlan\\Laradmin\\": "src/"
        }
    },
    "authors": [
        {
            "name": "zhx",
            "email": "zhx.0830@qq.com"
        }
    ],
    "license": "MIT",
    "minimum-stability": "stable",
    "require": {}
}

4. 编写扩展包信息啦~

接下来,我们来创建 PluginsServiceProvider 、Plugin 文件。目录结构如下:

packages/zhxlan/laradmin
├── composer.json

│   └── config

│           ├── laradmin.php

├── src
│   └── Controller
│           ├── LaradminController.php
│   └── LaradminServiceProvider.php
└── tests

<?php

namespace Zhxlan\Laradmin\Controller;

class LaradminController
{
    public function index(){
        return 'Hello';
    }
}
<?php

<?php

namespace Zhxlan\Laradmin;

use Illuminate\Support\ServiceProvider;
use Zhxlan\Laradmin\Controller\LaradminController;

class LaradminServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        // 注册服务绑定
        $this->app->bind('laradmin', function ($app) {
            return new LaradminController();
        });
    }

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        // 发布配置文件
        $this->publishes([
            __DIR__.'/config/laradmin.php' => config_path('laradmin.php'),
        ]);
    }

  
}
<?php
return [
    "name" => "laradmin",
];

到这里已经开发了一个最简单Laravel的扩展包了。

扩展包本地测试

把 PluginsServiceProvider 添加到项目的 config/app.php 中的 providers 数组中

'providers' => [
    ...
     \Zhxlan\Laradmin\LaradminServiceProvider::class
],

这个时候要修改 package_demo 项目下的 composer.json

{
    ...,
    "autoload": {
        ...,
        "psr-4": {
            ...,
            "Zhxlan\\Laradmin\\": "packages/zhxlan/laradmin/src/"
        }
    },
    ...
}

运行命令:

// 发布配置文件在config目录下面
php artisan vendor:publish

//最后在根目录执行命令
composer dumpautoload

测试运行:

php artisan tinker

//接着输入代码:
 
app('laradmin')->index();

扩展包发布

1. 首先把扩展包发布到全球最火的也是最大的同性交流平台 GitHub

2. 接着再 Packagist 也发布 [https://packagist.org/]

设置代码同步

GitHub,点击 Setting

版本

默认版本是 dev-master,Composer 包的版本号会从 Git 的 tag 中同步过来。

git tag v1.0.0
git push origin v1.0.0

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值