内容简介: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
文件夹中的目录。
config
和 migrations
比较容易理解,存放包的配置文件和扩展,当然可以根据包内业务的需要加入 views
或者其他需要 pulish
的文件目录。
我们在 config
文件夹下新建 packagedemo.php
,用来保存包的配置信息。
回到 laravel
项目的根目录,使用 php artisan make:provider PackageDemoServiceProvider
创建包的 ServiceProvider
。
把 app\Providers\PackageDemoServiceProvider.php
移动到 packages\sliverwing\packagedemo\src
下,并修改 namespace
。
继续修改,使得在运行 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包》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
现代前端技术解析
张成文 / 电子工业出版社 / 2017-4-1 / 79.00元
这是一本以现代前端技术思想与理论为主要内容的书。前端技术发展迅速,涉及的技术点很多,我们往往需要阅读很多书籍才能理解前端技术的知识体系。《现代前端技术解析》在前端知识体系上做了很好的总结和梳理,涵盖了现代前端技术绝大部分的知识内容,起到一个启蒙作用,能帮助读者快速把握前端技术的整个脉络,培养更完善的体系化思维,掌握更多灵活的前端代码架构方法,使读者获得成为高级前端工程师或架构师所必须具备的思维和能......一起来看看 《现代前端技术解析》 这本书的介绍吧!