下面由Laravel入门教程栏目给大家介绍Laravel 7 扩展开发教程,希望对需要的朋友有所帮助!

步骤 1. 创建一个新项目

我更喜欢使用 Laravel 安装程序。laravel new lara-dg

我更喜欢使用 SQLite 进行测试和软件包开发。修改你的.env 文件:DB_CONNECTION=sqlite

DB_DATABASE=/Users/ivan/code/packages/test-project/database/database.sqlite

接着让我们来创建包骨架。我们将使用 CLI tool. 它会生成所有必需的文件:composer require jeroen-g/laravel-packager

然后你可以运行生成命令。Webkid 代表供应商名称(你的命名空间), LaravelDiagnostic 代表你的项目名称:php artisan packager:new Webkid LaravelDiagnostic --i

然后输入有关你和你的包的信息。现在看起来应该是这样:

控制台输出

现在你的项目中有了 packages 文件夹,其中有 Webkid 目录以及所有必需的文件。

该软件包通过 composer 自动加载。我更喜欢使用相对路径:"repositories": {

"webkid/laraveldiagnostic": {

"type": "path",

"url": "../../packages/lara-dg/packages/Webkid/LaravelDiagnostic"

}

}

另外,如果你的 require 部分没有自动更新,请手动更新一下。它将在你的 vendor 目录中创建到软件包目录的符号链接。"require": {

"webkid/laraveldiagnostic": "*"

},

现在你可以在 src 文件夹中创建类,但是它们应当具有适当的命名空间 Webkid\LaravelDiagnostic.

例如,我有一个 Commands 目录,其中有一个 RunDiagnostic.php 类文件。所以它应该有这样的命名空间:namespace Webkid\LaravelDiagnostic\Commands;

如果要使用迁移、路由、配置文件、视图甚至资源文件(js,CSS,images),你需要在服务提供者中加载它们。你可以在 官方文档 中了解相关信息。在这个示例中我只使用了命令。看一下我的 LaravelDiagnosticServiceProvider 中的 bootForConsole() 方法:public function bootForConsole()

{

if ($this->app->runningInConsole()) {

$this->commands([

RunDiagnostic::class

]);

}

}

我在第一次尝试构造我的包时遇到了麻烦,因此,我想跟你分享一下我的个人心得。我更喜欢将所有 PHP 类放入 src 文件夹中,并将所有其他文件放在外面。例如:

assets— 用于存放所有 CSS, js, images 文件

config — 用于存放所有配置文件

migrations — 用于存放所有迁移文件

resources — 用于存放所有视图文件、lang 文件等

src — 用于存放所有 PHP 类,包括服务提供者

如果你需要引用其他软件包,则必须编辑软件包里的 composer.json 文件来添加。"require": {

"cviebrock/eloquent-sluggable": "^4.3"

}

一个更有用的技巧:当你需要同时测试更改资源时,可以使用符号链接来避免始终重复 vendor 发布。它将创建符号链接,而不是复制文件。这个技巧为我节省了很多时间

ln -s /path/to/your/project/webkid-cms/packages/webkid/cms/assets /path/to/your/project/webkid-cms/public/vendor/cms

然后更新 Composer 的自动加载以添加新文件:composer dump-autoload

步骤 2. 把你的项目放到 GitHub 上

当你的代码库准备就绪后,可以到包目录下初始化一个 Git 仓库。cd packages/Webkid/LaravelDiagnostic

git init

git add .

git commit -m "first commit"

创建一个 新 GitHub 仓库 并且添加 origin.git remote add origin git@github.com:yourusername/yourrepository.git

git push -u origin master

git tag -a 1.0.0 -m "release: First version"

git push --tags

步骤 3. 把你的项目放到 Packagist 上

首先,在 Packagist.org 网站注册。我更喜欢使用我的 GitHub 帐户进行注册。

然后使用此 URL 提交新软件包。输入你的包的 GitHub URL,然后单击 Check. 如果发生任何错误,请按照屏幕上的说明进行操作。

完成上一步后,你将跳转到你的包的 packagist 页面,在该页面上你可能会收到如下通知:

此软件包不会自动更新。请为 Packagist 设置 GitHub Service Hook 以便在你每次推送时更新它!

让我们来设置一下。在此 页面 上获取 API 令牌,然后访问你的包的 GitHub 页面,找到 设置 / 网络钩子和服务 / 添加新服务 界面。搜索 Packagist,输入你的名字和令牌,然后点击提交。在 Packagist 页面上显示的错误应该会在 5–10 分钟内消失。

恭喜,你有一个有效的软件包在线,现在你可以通过 composer 引用它了。

步骤 5. 在 packages 文件夹继续进行操作

如果你开发这个软件包的唯一目的是帮助你开发软件包,那么这个包的开发就完成了。

但是,如果你在一个更大的项目中开发了该软件包,而现在又需要它,你可以将代码保留在 packages 文件夹中并使用它。

每当你完成工作时,可以从 composer.json 文件中删除此代码"repositories": {

"webkid/laraveldiagnostic": {

"type": "path",

"url": "../../packages/lara-dg/packages/Webkid/LaravelDiagnostic"

}

}

然后从 packagist 拉取你的包。

感谢你的阅读。希望本文对大家有所帮助。

让我们为开源做出贡献!

推荐教程:《Laravel》

php7扩展开发教程,Laravel 7 扩展开发教程相关推荐

  1. php laravel 入门教程,Laravel 5 系列入门教程(一)【最适合中国人的 Laravel 教程】...

    Laravel 5 系列入门教程(一)[最适合中国人的 Laravel 教程] 2015-3-7 / 阅读数:314392 / 分类: Laravel 十分建议学习 5.5,跟 5.0 比变化非常大. ...

  2. php laravel 教程,Laravel 入门到精通教程

    Laravel 入门到精通教程 由 学院君 创建于1年前, 最后更新于 1个月前 版本号 #56 1986689 views 1127 likes 120 collects 适用于 Laravel 5 ...

  3. Laravel大型项目系列教程(七)之7 扩展包和Artisan开发

    本节教程将讲解扩展包开发和Artisan扩展开发,并浏览不同分辨率下的自适应效果.本节结束后整个教程就结束了,文章最后有完整版程序代码的下载. 1.扩展包开发 在前面开发中,我们经常要用到通知,如修改 ...

  4. Spring Boot + vue-element 开发个人博客项目实战教程(二十五、项目完善及扩展(前端部分))

    ⭐ 作者简介:码上言 ⭐ 代表教程:Spring Boot + vue-element 开发个人博客项目实战教程 ⭐专栏内容:零基础学Java.个人博客系统 ⭐我的文档网站:http://xyhwh- ...

  5. 黄聪:360浏览器、chrome开发扩展插件教程(1)开发Chrome Extenstion其实很简单

    转载:http://www.cnblogs.com/walkingp/archive/2011/03/31/2001628.html Chrome的更新速度可以说前无古人,现在我每天开机的第一件事就是 ...

  6. php扩展开发中文教程.pdf,PHP扩展开发系列教程-1

    PHP的核心由两部分组成.最底层是zend引擎(ZE).另一部分是PHP内核,她绑定了SAPI层(Server Application Programming Interface). ###扩展的内存 ...

  7. Laravel Debugbar 扩展包安装及使用教程

    1.简介 Laravel Debugbar在 Laravel 5 中集成了PHP Debug Bar用于显示调试及错误信息以方便开发.该扩展包包含了一个 ServiceProvider 用于注册调试条 ...

  8. Laravel 调试利器 —— Laravel Debugbar 扩展包安装及使用教程(转)

    Laravel 调试利器 -- Laravel Debugbar 扩展包安装及使用教程 时间 2015-12-24 09:57:09  Laravel学院 原文  http://laravelacad ...

  9. qt creator php扩展,用qt creator搭建开发、调试php扩展的环境

    用qt creator搭建开发.调试php扩展的环境 用qt creator搭建开发.调试php扩展的环境 https://segmentfault.com/a/1190000009828172 目标 ...

最新文章

  1. 华为系列交换机日志服务器的搭建
  2. iOS面试题 第一天
  3. php远程开机ubuntu,Ubuntu系统远程开机操作实例
  4. spring源码解读之 JdbcTemplate源码
  5. 整顿满月,如今现金贷生不如死
  6. TQ210 —— NandFlash
  7. vlc 在ubuntu 14下的linux版本编译
  8. java爬虫隐藏表单提交_java爬虫--jsoup简单的表单抓取案例
  9. 排序算法Java实现(快速排序)
  10. it'll be much more productive to read pdf files via a touch screen
  11. 机器视觉齿轮质量快速检测
  12. Chrome浏览器嗅探功能技巧
  13. 【音频】I2S协议时序及使用粗解
  14. 在Ubuntu Kylin 优麒麟系统中安装 Etcher镜像烧录软件
  15. Mac 右键的一些方法
  16. 阿里官方 Redis 开发规范
  17. Vue前端文本对比DIFF
  18. 这三款软件让你轻松实现在线扫花识别植物
  19. MAC 下Sublime text 同时编辑多行内容
  20. 明瞳智控最佳实践--国标设备实战接入

热门文章

  1. 风糜全球、年销128亿!著名品牌好丽友突陷“双标”争议!
  2. 扎克伯格夏威夷州大肆买地引发当地不满 被批搞“新殖民主义”
  3. 7天减排超万吨 特斯拉十一出行报告带来纯电出行全新视角
  4. 五一档票房超8.8亿元!张艺谋新片仅第二
  5. 经济学家建议茅台国外售价为国内2倍:未来最有可能走向世界的奢侈品牌
  6. 性价比还是小米狠:两场下来友商完败?
  7. 微信又更新了,“拍一拍”玩法升级...
  8. 这个城市推出黄金“外卖”!价值低于5.8万元的,只能摩托车配送...
  9. 罗永浩又提西门子:希望网友帮介绍西门子管理层
  10. 维权靠微博?用户京东金融账户被盗刷15万 处理未果怒发微博曝光