2022-03-08 11:04:14  2313 0

laravel 开发本地扩展包

 标签:   

大家好!我是猪哥,自从zy-editor发布后获得了大家的一致好评!今天来教大家如何开发一个扩展包

首先 在https://gitee.com/ 上面创建一个仓库,然后拉取到本地

image.png

点击复制 然后开始拉取仓库 比如我的仓库地址是:https://gitee.com/flydream8/zy-test.git

git clone https://gitee.com/flydream8/zy-test.git

image.png

现在我们拉下来的是一个空仓库,我们开始创建 composer.json

image.png

进入仓库目录 按照下面提示输入

image.png

composer init 的结果解释:


说明地址:https://docs.phpcomposer.com/04-schema.html

https://docs.phpcomposer.com/04-schema.html#authors

https://docs.phpcomposer.com/02-libraries.html

命令解释案例

name项目名称pack/test

description项目描述(不要中文)this is pack test

type安装类型默认为 library (4种类型:library,project,metapackage,composer-plugin)

license许可协议MIT

authors作者{ “name”: “json”,“email”: “json_yin@fionacos.com” }

minimum-stability版本dev、alpha、beta、RC、stable


composer.json 文件生成后,我们用phpstrom 打开项目 创建src目录

如图

image.png

src目录下创建Service.php (创建业务执行代码)

代码如下:

<?php
namespace Zy;

class Service
{
    public function __construct()
    {
    }
    public function hello() {
        return "hello zy-editor";
    }
}

下面开始修改 composer.json  添加autoload

{
    "name": "zy/test",
    "description": "zy package test",
    "license": "MIT",
    "authors": [
        {
            "name": "燕雀留声",
            "email": "1551909095@qq.com"
        }
    ],
    "minimum-stability": "dev",
    "autoload":{
        "psr-4":{
            "Zy\\":"src/"
        }
    },
    "require": {}
}

注意 autoload Zy 是你定义的命名空间,可以根据自己的需要命名这里只是演示

我们添加完毕后,执行 composer dump-autoload

如图:

image.png

然后我们在项目根目录创建一个 test.php 测试下

目录结构如下:

image.png

我们的test.php 代码如下:

<?php
require_once __DIR__ .'/vendor/autoload.php';
$obj = new \Zy\Service();
$msg = $obj->hello();
var_dump($msg);

我们在命令行下测试下:如图所示

image.png

我们可以看到代码已经成功运行,我们定义的 命名空间 Zy 也已经生效

如果没什么问题,把代码推送到gitee远程仓库里,gitignore 设置忽略 vendor, .idea

image.png

如果不小心把 .idea 加入了缓存 我们可以使用如下命令清除掉 在add

git rm -rf --cached  .idea/

image.png

一切工作准备就绪我们开始提交代码 输入

git commit -m "first"

image.png

开始提交之前 我们先去gitee 获取仓库地址 

image.png

点击复制 ,输入如下命令创建远程分支默认是master 下面的仓库地址换成你自己的

git remote add origin https://gitee.com/flydream8/zy-test.git

注意如果你的代码是从远程拉下的这一步可以跳过 直接push即可

空仓库需要执行上面代码

最后push 下就成功了

git push origin -u master

image.png

下面我们把包按照到laravel项目中:

在laravel 根目录下 打开 composer.json

在 require 节点下面加入下面代码

"repositories": {
    "0": {
        "type": "vcs",
        "url": "https://gitee.com/flydream8/zy-test.git"
    },
    "packagist": {
        "type": "composer",
        "url": "https://mirrors.aliyun.com/composer/"
    }
},

image.png

然后我们执行 composer require zy/test

zy/test 是你开发扩展包的name名称

可以看到下图我们已经成功把扩展包安装到laravel 

image.png

接下来就要看各位同学到创造能力了,感谢大家的阅读