composer使用笔记
安装:
windows下安装
下载:https://getcomposer.org/Composer-Setup.exe
直接执行安装,它会查找系统环境变量php所在位置,然后自动安装。
Linux下安装
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
Docker方式执行
官方仓库:https://hub.docker.com/_/composer
docker pull composer
docker run --rm --interactive --tty --volume $PWD:/app composer create-project flarum/flarum .
# 加上代理(若SSL失败可以重试几次)
docker run --rm --interactive --tty -e HTTP_PROXY=http://192.168.50.1:50001 -e HTTPS_PROXY=http://192.168.50.1:50001 --volume $PWD:/app composer create-project flarum/flarum .
flarum论坛
安装中文包
composer require flarum-lang/chinese-simplified
单点登录
composer require maicol07/flarum-ext-sso
上传文件
composer require fof/upload
图链接自动显示
composer require fof/formatting
header上的导航栏
composer require fof/links
二次开发
https://mithril.js.org/
https://docs.flarum.org/zh/extend/frontend
# cd into your flarum folder
mkdir packages & cd packages
npx @friendsofflarum/create-flarum-extension web3address
cd packages/web3address
cd js
yarn && yarn dev
https://juejin.cn/post/7111517181460480014 https://www.sitepoint.com/writing-a-flarum-extension-building-a-custom-field/
使用
1.在项目目录下新建composer.json文件:
{
"require": {
"elasticsearch/elasticsearch": "~1.0"
}
}
2.命令行进入该目录执行:
composer update
composer 常用命令
composer list 显示所有命令
composer show 显示所有包信息
composer install 在 composer.json 配置中添加依赖库之后运行此命令安装
composer install --ignore-platform-req=ext-redis --ignore-platform-req=ext-mongodb # 安装时排除指定扩展,缺扩展时防止安装报错
composer create-project laravel/laravel Laravel –prefer-dist "5.1.*" 创建项目
composer search packagename 搜索包
composer update 更新所有包
composer update elasticsearch/elasticsearch 更新指定包(通过修改composer.json文件中的版本号,再用该条命令可升级对应包的版本)
composer remove elasticsearch/elasticsearch 移除指定的包
composer require elasticsearch/elasticsearch 添加指定包
composer require elasticsearch/elasticsearch:1.19 添加指定包和版本
composer require elasticsearch/elasticsearch=1.19
composer require elasticsearch/elasticsearch 1.19
所有支持的命令
about 显示关于composer的简短信息。
archive 创建这个作曲家软件包的存档。
browse 在浏览器中打开软件包的存储库 URL 或主页。
cc 清除composer的内部软件包缓存。
check-platform-reqs 检查是否满足平台要求。
clear-cache 清除作曲家的内部软件包缓存。
clearcache 清除作曲家的内部软件包缓存。
config 设置配置选项。
create-project 从包中创建新的项目到给定的目录中。
depends 显示哪些包会导致给定包被安装。
diagnose 诊断系统以识别常见错误。
dump-autoload 转储自动加载器。
dumpautoload 转储自动加载器。
exec 执行销售的二进制文件/脚本。
fund 了解如何为维护你的依赖关系提供资金。
global 允许在全局作曲家目录($COMPOSER_HOME)中运行命令。
help 显示命令的帮助。
home 在浏览器中打开软件包的仓库 URL 或主页。
i 从 composer.lock 文件中安装项目依赖关系(如果存在),或者使用 composer.json。
info 显示软件包的信息。
init 在当前目录下创建一个基本的 composer.json 文件。
install 如果存在的话,从 composer.lock 文件中安装项目依赖关系,或者回到 composer.json。
licenses 显示依赖项的许可证信息。
list 列出命令
outdated 显示有更新的已安装软件包的列表,包括其最新版本。
prohibits 显示哪些软件包无法安装。
remove 从 require 或 require-dev 中移除一个包。
require 将所需的包添加到 composer.json 中并安装它们。
run 运行 composer.json 中定义的脚本。
run-script 运行 composer.json 中定义的脚本。
search 搜索软件包。
self-update 将 composer.phar 更新为最新版本。
selfupdate 将 composer.phar 更新到最新版本。
show 显示软件包的信息。
status 显示本地修改的软件包列表。
suggests 显示软件包的建议。
u 根据 composer.json 将你的依赖项升级到最新版本,并更新 composer.lock 文件。
update 根据 composer.json 将你的依赖项升级到最新版本,并更新 composer.lock 文件。
upgrade 根据 composer.json 将你的依赖项升级到最新版本,并更新 composer.lock 文件。
validate 验证 composer.json 和 composer.lock。
why 显示哪些包导致给定包被安装。
why-not 显示哪些包会阻止给定包的安装。
使用国内源,加快更新速度
1.修改 composer 的全局配置文件(推荐方式)
打开命令行窗口(windows用户)或控制台(Linux、Mac 用户)并执行如下命令:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
-
阿里云镜像源 https://mirrors.aliyun.com/composer/
-
华为云 https://mirrors.huaweicloud.com/repository/php/
-
腾讯云 https://mirrors.cloud.tencent.com/composer/
-
上海交通大学 https://packagist.mirrors.sjtug.sjtu.edu.cn/
恢复到官方源:
composer config -g repo.packagist composer https://packagist.org
2.修改当前项目的 composer.json 配置文件:
打开命令行窗口(windows用户)或控制台(Linux、Mac 用户),进入你的项目的根目录(也就是 composer.json 文件所在目录),执行如下命令:
composer config repo.packagist composer https://packagist.phpcomposer.com
上述命令将会在当前项目中的 composer.json 文件的末尾自动添加镜像的配置信息(你也可以自己手工添加):
"repositories": {
"packagist": {
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
}
更新composer自身
composer selfupdate
查看composer版本:
composer --version
回滚版本:
composer self-update --rollback
中文文档:http://www.phpcomposer.com/
显式设置目标 PHP 版本来解决升级模块提示PHP版本不一致问题
在composer.json
文件中添加config
{
"require": {
"mongodb/mongodb": "^1.8"
},
"config": {
"platform": {
"php": "7.1.0"
}
}
}
发布包
发布包注意事项
1.src目录下的文件名和类名保持一致。
2.提交到git后,要创建一个release Tags标签,比如 v1.7,再去Packagist手动update。
3.在Packagist提交发布地址的时候,填入的是GitHub的地址,注意不是.git结尾的这种(否则会报CSRF错误)。
4.发布完包后Packagist的国内索引需要一定时间才能更新,所以不能马上通过composer require更新包。(可以通过切换到官方源,并清除本地缓存 composer clearcache 来处理)
5.如果跨越大版本号更新,require是无法满足的。(可以先remove再require)
6.命名空间和包名是区分大小写的。
7.注意composer.json文件里autoload psr-4 命名空间前缀必须以\\
结尾,而且这里的命名空间要与类中namespace对应。否则class_exists()也找不到类的。
8.composer.json里的项目名称必须全部小写。