php7扩展开发教程,Laravel 7 扩展开发教程
下面由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 扩展开发教程相关推荐
- php laravel 入门教程,Laravel 5 系列入门教程(一)【最适合中国人的 Laravel 教程】...
Laravel 5 系列入门教程(一)[最适合中国人的 Laravel 教程] 2015-3-7 / 阅读数:314392 / 分类: Laravel 十分建议学习 5.5,跟 5.0 比变化非常大. ...
- php laravel 教程,Laravel 入门到精通教程
Laravel 入门到精通教程 由 学院君 创建于1年前, 最后更新于 1个月前 版本号 #56 1986689 views 1127 likes 120 collects 适用于 Laravel 5 ...
- Laravel大型项目系列教程(七)之7 扩展包和Artisan开发
本节教程将讲解扩展包开发和Artisan扩展开发,并浏览不同分辨率下的自适应效果.本节结束后整个教程就结束了,文章最后有完整版程序代码的下载. 1.扩展包开发 在前面开发中,我们经常要用到通知,如修改 ...
- Spring Boot + vue-element 开发个人博客项目实战教程(二十五、项目完善及扩展(前端部分))
⭐ 作者简介:码上言 ⭐ 代表教程:Spring Boot + vue-element 开发个人博客项目实战教程 ⭐专栏内容:零基础学Java.个人博客系统 ⭐我的文档网站:http://xyhwh- ...
- 黄聪:360浏览器、chrome开发扩展插件教程(1)开发Chrome Extenstion其实很简单
转载:http://www.cnblogs.com/walkingp/archive/2011/03/31/2001628.html Chrome的更新速度可以说前无古人,现在我每天开机的第一件事就是 ...
- php扩展开发中文教程.pdf,PHP扩展开发系列教程-1
PHP的核心由两部分组成.最底层是zend引擎(ZE).另一部分是PHP内核,她绑定了SAPI层(Server Application Programming Interface). ###扩展的内存 ...
- Laravel Debugbar 扩展包安装及使用教程
1.简介 Laravel Debugbar在 Laravel 5 中集成了PHP Debug Bar用于显示调试及错误信息以方便开发.该扩展包包含了一个 ServiceProvider 用于注册调试条 ...
- Laravel 调试利器 —— Laravel Debugbar 扩展包安装及使用教程(转)
Laravel 调试利器 -- Laravel Debugbar 扩展包安装及使用教程 时间 2015-12-24 09:57:09 Laravel学院 原文 http://laravelacad ...
- qt creator php扩展,用qt creator搭建开发、调试php扩展的环境
用qt creator搭建开发.调试php扩展的环境 用qt creator搭建开发.调试php扩展的环境 https://segmentfault.com/a/1190000009828172 目标 ...
最新文章
- 华为系列交换机日志服务器的搭建
- iOS面试题 第一天
- php远程开机ubuntu,Ubuntu系统远程开机操作实例
- spring源码解读之 JdbcTemplate源码
- 整顿满月,如今现金贷生不如死
- TQ210 —— NandFlash
- vlc 在ubuntu 14下的linux版本编译
- java爬虫隐藏表单提交_java爬虫--jsoup简单的表单抓取案例
- 排序算法Java实现(快速排序)
- it'll be much more productive to read pdf files via a touch screen
- 机器视觉齿轮质量快速检测
- Chrome浏览器嗅探功能技巧
- 【音频】I2S协议时序及使用粗解
- 在Ubuntu Kylin 优麒麟系统中安装 Etcher镜像烧录软件
- Mac 右键的一些方法
- 阿里官方 Redis 开发规范
- Vue前端文本对比DIFF
- 这三款软件让你轻松实现在线扫花识别植物
- MAC 下Sublime text 同时编辑多行内容
- 明瞳智控最佳实践--国标设备实战接入
热门文章
- 风糜全球、年销128亿!著名品牌好丽友突陷“双标”争议!
- 扎克伯格夏威夷州大肆买地引发当地不满 被批搞“新殖民主义”
- 7天减排超万吨 特斯拉十一出行报告带来纯电出行全新视角
- 五一档票房超8.8亿元!张艺谋新片仅第二
- 经济学家建议茅台国外售价为国内2倍:未来最有可能走向世界的奢侈品牌
- 性价比还是小米狠:两场下来友商完败?
- 微信又更新了,“拍一拍”玩法升级...
- 这个城市推出黄金“外卖”!价值低于5.8万元的,只能摩托车配送...
- 罗永浩又提西门子:希望网友帮介绍西门子管理层
- 维权靠微博?用户京东金融账户被盗刷15万 处理未果怒发微博曝光