composer根本知识

分享
源代码 2024-9-24 11:49:41 105 0 来自 中国
包版本说明:

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  提供脚本利用的额外数据
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-22 18:09, Processed in 0.161626 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表