切换国内镜像 composer 加速扩展包—— hirak/prestissimo 中文文档
–ignore-platform-reqs: 忽略 php
, hhvm
, lib-*
和 ext-*
要求并强制安装,就算本地环境不完全要求。平台配置选项可见 platform
文档
举例说明,windows平台的php不支持pcntl扩展,安装laravel-horizon时需要用的该扩展,可以通过指令强制安装
–with-all-dependencies:(-W)
添加所有白名单中的依赖到白名单,包括那些根依赖,
允许升级、降级和删除目前锁定在特定版本的软件包。
composer require packagename:*
不确定当前项目可以使用扩展的哪个版本的时,可以使用require xxx:* 来计算是否有任何版本可以安装
依赖冲突
比如package A 和 B依赖相同的package C,但是版本不同,需要通过github 或packagelist 的composer.json 找到A和B依赖的最低版本C然后卸载C 然后安装适合版本的A和B,这样会自动安装最适合版本C
laravel 如何覆盖composer的 vendor类文件? 适用于需要修改vendor代码的场景
项目和框架运行缓慢
基于composer构建的项目出现过,加载运行缓慢的问题。碰到过旧laravel项目运行php artisan -v 时,命令显示非常慢。运行php artisan server 访问页面响应也很慢。
具体原因未验证,可能是安装依赖时,和运行项目时的php版本不一致,使用低版本安装了依赖,切换了高版本的php。composer安装项目后,会在vendor/bin目录下生成命令文件和缓存之类的,
解决方法,将vendor目录完全删除,然后重新运行composer install ,项目在升级或切换composer版本和php版本之后保险起见需要重新安装依赖
引入本地包
laravel-devstart 本地包的名称,path指定目录 要用基于当前项目路的相对路径,适用于开发扩展包
//设置路径,本质是创建了一个系统软连接
composer config repositories.laravel-devstart path ../../package/laravel-devstart
//引入本地包的master分支
composer require yangliuan/laravel-devstart:dev-master
扩展包开发
安装 Package Builder 包结构创建工具
composer global require overtrue/package-builder
安装项目需要的依赖
修改composer.json
编写异常
编写单元测试
测试扩展包
发布版本到github
自动化测试
参考教程
- 基于 Composer 的 PHP 模块化开发
- PHP 扩展开发检测清单(扩展开发必读)
- Composer 扩展开发:本地运行扩展包
- pds/skeleton PHP 扩展架构规范(扩展开发必…
- [扩展推荐] 使用 Bootpack 来加快你开发扩展…
- 一步步带你开发 Laravel 5.5 扩展包(实战教…
- 手把手教你如何构建一个优秀的开源项目
扩展包版本对应
Laravel旧版本和扩展包对应版本,方便维护旧项目时参考
Laravel版本 | 扩展包版本 |
5.5 | “laravel/horizon”: “2.1” |
5.5 | “barryvdh/laravel-ide-helper”: “2.4.1” |
5.5 | “doctrine/dbal”: “^2.10” |
5.5 | “laravel/passport”: “~4.0” |
5.5 | “laravel/tinker”: “~1.0” |
5.5 | “propaganistas/laravel-phone”: “^4.2” |
5.5 | “barryvdh/laravel-debugbar”: “3.4”, |
5.5 | “filp/whoops”: “~2.0” |
5.5 | “friendsofphp/php-cs-fixer”: “^2.14” 配置文件为.php_cs.dist |