包版本说明:
1.0.2 你可以指定包简直切版本。
=1.0 >=1.0,<2.0 >=1.0,<1.1|>=1.2 通过利用比力利用符可以指定有用的版本范围。有用的运算符:>、>=、<、<=、!=。你可以界说多个范围,用逗号隔开,这将被视为一个逻辑AND处置处罚。一个管道符号|将作为逻辑OR处置处罚。 AND 的优先级高于 OR。
1.0.* 你可以利用通配符来指定一种模式。1.0.与>=1.0,<1.1是等效的。
~1.2 这对于遵照语义化版本号的项目非常有用。~1.2相当于>=1.2,<2.0。
composer install和update的区别:
install会优先查抄composer.lock文件中确定的版本,不会更新各个包的最新版本。
updata会优先查抄composer.json文件中界说的包版本号,查抄最新的可用版本。
平台软件包和平凡软件包
平凡软件包是一个可安装的包(包罗name属性,不含name属性的包不可被安装),通过require引入
平台软件包是已经安装在系统上的软件,包罗PHP自己和一些扩展和库。composer show --platform检察可用列表。
例:
"require": { "monolog/monolog": "1.0.*", "php":">=5.6", "ext-redis":">4.1" }root包
由 composer.json 界说的在你项目根目次的包,是一个上下文的关系,同一个包再差别地方用大概角色不一样。
包版本
通过vcs的信息自动推断出版本。以git为例,通太过支和标签判断出版本
标签:
定名规范:应该符合 'X.Y.Z' 或者 'vX.Y.Z' 的形式,-patch、-alpha、-beta 或 -RC 这些后缀是可选的。在后缀之后也可以再跟上一个数字。
例:
1.0.0
v1.0.0
1.10.5-RC1
v4.4.4beta2
v2.0.0-alpha
v2.0.4-p1
注:require指定版本号时前面的'v'不填
分支:
如果分支名看起来像一个版本号,会创建一个{分支名}-dev的包版本。如果分支名看起来不像版本号,会创建一个dev-{分支名}的包版本,如dev-master
1.x
1.0 (equals 1.0.x)
1.1.x
注:github上可以通过release功能来实现发布包版本
指定资源库
"repositories": [ { "type": "vcs", "url": "https://github.com/username/hello-world" } ],如果包已经发布到packagist上,就不须要指定该参数了。
一些根本下令行:
init 初始化一个composer.json文件
install 安装包
--prefer-source
--prefer-dist 稳固版本默认此选项,有更快的安装速率
--no-dev 跳过require-dev中列出的包
--no-scripts 跳过脚本
--no-plugins 关闭plugins
--optimize-autoloader (-o) 转换 PSR-0/4 autoloading 到 classmap 可以得到更快的加载支持(建议生产环境中利用)
update 更新包
参数和install类似
require 添加依靠
global 全局实验
search 搜索packagist.org上的包(如果设置了镜像则搜索镜像中的包)
show
包名:包的详细参数
--installed 已安装的包
--platform 平台软件包
--self 当前项目标信息
depends
检察某个包是否被其他包所依靠
validate
检测composer.json文件格式,提交前运行一遍
self-update 更新composer
config 设置
run-script 运行脚本
archive 归档
composer archive vendor/package 2.0.21 --format=zip
--format:tar/zip
--dir:默认当前目次
composer.json文件架构
标明root-only的只有当包是root包时才生效
name:包名,需发布时必须
description:形貌,需发布时必须
version:版本,建议不填,会从VCS自动对应
type:安装范例
library 默认选项,简单的复制到vendor目次。
project 表现一个项目,比方框架步伐,像yii2,laravel等。
其他两个很少用到(metapackage,composer-plugin)
keywords 关键词用于搜索过滤,数组格式,可选
homepage 项目url地点,可选
time 版本发布时间,可选
license 允许协议,MIT,Apache-2.0等。没研究过,一样平常填MIT。可选但是保举填写。
authors 作者,可以有多个,每个可以包罗name,email,homepage,role字段,可选但是保举填写。
support 项目支持,email,issues,forum,wiki,irc,source等字段。
---------------------分割线---------------------------
以下对象都是填写包名:版本映射对象
**require ** 必须包罗的包,可选
require-dev(root-only)**** 测试开发等须要用到的包,可选。root包的dev包默认会被安装,可以用--no-dev参数跳过。
conflict 辩说的包,不允许同时安装
replace 此列表中的包将会被当前包代替
---------------------分割线---------------------------
autoloader 自动加载
psr-4{ "autoload": { "psr-4": { "Monolog1\\": "src/", "Mono\\Log\\": "", "Monolog2\\": ["src/", "lib/"] } }}classmap
自界说加载的不遵照psr-0/4规范的类库
{ "autoload": { "classmap": ["src/", "lib/", "Something.php"] }}在运行install/update后,存储在vendor/composer/autoload_classmap.php中
files
明确指定文件
{ "autoload": { "files": ["src/MyLibrary/functions.php"] }}minimum-stability(root-only)**** 通过稳固性过滤包,低于最低稳固性要求的包将会被过滤
dev 开发版本
alpha 内测版本
beta 公测版本
RC 候选版本
stable 稳固版本 默认
prefer-stable (root-only) 优先利用更稳固的包版本
**repositories **(root-only)**** 自界说资源库
https://docs.phpcomposer.com/05-repositories.html
config(root-only)**** 项目设置
https://docs.phpcomposer.com/04-schema.html#config
scripts(root-only) 脚本
https://docs.phpcomposer.com/articles/scripts.html
extra 提供脚本利用的额外数据 |