如何创建自己的 Laravel Composer包

栏目: PHP · 发布时间: 5年前

内容简介:1.一个github账号2.一个packagist账号3.一台安装composer的开发机

How to create your own package for laravel

准备工作

1.一个github账号

2.一个packagist账号

3.一台安装composer的开发机

如何创建自己的 Laravel Composer包

为了组(tao)件(bi)化(xue)开(xi)发,在最近做项目的时候,把一部分作为单独的组件来开发。组件化离不开跟包打交道,经过最近的折腾,记录一下自己开发包的过程。

首先,新建一个 Laravel 项目,并在项目根目录下新建 packages 文件夹。

packages 文件夹中,新建以你名字为命名的文件夹,并在此文件夹内建立以项目名命名的文件夹。

├── app
├── artisan
├── bootstrap
├── composer.json
├── composer.lock
├── package.json
├── packages
└── packagedemo复制代码

如上例,进入 packages\sliverwing\packagedemo 运行 composer init 命令,进入 Composer config generator
分别键入 Package name Description Author Minimum Stability Package Type License 和交互方式定义所依赖的库 require require-dev 后便可生成该包的 composer.json
接下来,编辑 composer.json 增加以下内容:

"autoload": {
    "psr-4": {
        "Sliverwing\\PackageDemo\\": "src/"
    }
},复制代码

这里定义了,该包发布后 composer 如何对项目进行自动加载。

在 Laravel 项目下的 composer.json 中,修改 autoload 配置,使得在编写包的过程中 Laravel 项目能自动加载包。

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/",
        "Sliverwing\\PackageDemo\\": "packages/sliverwing/packagedemo/src/"
    }
},复制代码

接下来,在 packagedemo 中新建 src config migrations 文件夹。

└── packagedemo
    ├── composer.json
    ├── config
    ├── migrations
    └── src复制代码

src 这里是主要存放代码的地方。可以参考 Laravel 中 app 的目录来组织 src 文件夹中的目录。

configmigrations 比较容易理解,存放包的配置文件和扩展,当然可以根据包内业务的需要加入 views 或者其他需要 pulish 的文件目录。

我们在 config 文件夹下新建 packagedemo.php ,用来保存包的配置信息。

回到 laravel 项目的根目录,使用 php artisan make:provider PackageDemoServiceProvider 创建包的 ServiceProvider

app\Providers\PackageDemoServiceProvider.php 移动到 packages\sliverwing\packagedemo\src 下,并修改 namespace

参考 laravel.com/docs/5.3/pa…

继续修改,使得在运行 php artisan vendor:publish 时,我们的配置文件可以复制到 Laravel 工程的 config 文件下。

boot 方法里,新增代码如下:

$this->publishes([
    __DIR__.'/../config/packagedemo.php' => config_path('packagedemo.php'),
]);复制代码

接下来,把 PackageDemoServiceProvider 加入到 config\app.php 中。

Sliverwing\PackageDemo\PackageDemoServiceProvider::class,复制代码

在 Laravel 项目目录下,运行 composer dump-autoload ,然后运行 php artisan vendor:publish 可以发现,包下面的配置文件复制到 Laravel 项目中 config 文件夹下了。

接下来,可以在 src 文件夹下创建 Http\Controllers 文件夹,并根据业务需要,新增包内的 Controller ,也可以对现有的组件进行扩展。

也可以参考其他包项目来进一步完善自己的项目组建。将写好的 包 发送到 GitHab 上

git add .
git commit -m 'commit'
git push
// 最好打上 tag 也推送过去
git tag 1.0.1 -a -m 'v1.0.1 release'
git push --tags复制代码

Packagist配置

github关联到Packagist

1.首先要在Packagist上登录
2.点击顶部导航条中的Summit按钮
3.在输入框中输入github上的仓库地址,如:https://github.com/WXiangQian
4.然后点击Check按钮
5.Packagist会去检测此仓库地址的代码是否符合Composer的Package包的要求
6.检测正常的话,会出现Submit按钮,再点击一下Submit按钮,我们的包就提交到Packagist上了
复制代码

配置自动同步

1.从Packagist点击个人中心点击profile获取token然后复制
2.到github项目首页上点击settings、点击webhooks、点击addwebhook
3.把https://packagist.org/api/bitbucket?username=USERNAME&apiToken=TOKEN 复制到Payload URL,在下方输入密码后保存复制代码

如果想在github上发布稳定版本包:https://juejin.im/post/5d0c807ae51d4510664d16f2


以上所述就是小编给大家介绍的《如何创建自己的 Laravel Composer包》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

编程精粹

编程精粹

Steve Maguire / 人民邮电出版社 / 2009.2 / 45.00元

编写高质量的、没有bug的程序,是每位程序员所追求的目标。但随着软件规模越来越大,功能日趋复杂,这一目标变得越来越困难。 本书揭示了微软公司应对质量挑战、开发出世界级代码的技术内幕,作者在自己不断探索、实践和思考的基础上,系统总结了多年来指导微软各团队的经验,将其凝聚为许多切实可行的编程实践指导,可谓字字珠玑。正因如此,本书被公认为与《代码大全》齐名的编程技术名著,曾于1993年荣获有软件开......一起来看看 《编程精粹》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具