在使用git 时出现 文件大面积冲突 为避免麻烦 使用正则表达式进行批量替换
总代码如下
1 |
|
#拆分1 只匹配头部 也就是 <<<< HEAD 部分
1 |
|
拆分2 匹配尾部
1 |
|
此为高亮部分
4ec633df87926745360d68b4aad6e5dd06c17400
可替换为你想要的任意类型
在使用git 时出现 文件大面积冲突 为避免麻烦 使用正则表达式进行批量替换
1 |
|
#拆分1 只匹配头部 也就是 <<<< HEAD 部分
1 |
|
1 |
|
此为高亮部分
4ec633df87926745360d68b4aad6e5dd06c17400
可替换为你想要的任意类型
可以看这里 composer.json
“root 包”是指由 composer.json
定义的在你项目根目录的包。这是 composer.json
定义你项目所需的主要条件。(简单的说,你自己的项目就是一个 root 包)
包的名称,它包括供应商名称和项目名称,使用 /
分隔。
例:
对于包的描述信息
非必需,建议忽略 规范 符合 'x.y.z'
or vx.y.z
后缀可加 -dev
-alpha
-patch
-beta
-RC
并且可附带数字
例:
composer 支持的类型如下:
包含相关的关键词的数组。这些可用于搜索和过滤。
例:
该项目的地址: 如 http://127.0.0.1/
必须符合 YYYY-MM-DD
或 YYYY-MM-DD HH:MM:SS
格式
包的许可协议,它可以是一个字符串或者字符串数组。
例:
1 | { |
包的作者,是一个数组
属性如下:1
2
3
4
5
6
7
8
9
10
11
12
13{
"authors": [
{
"name": "yang l",
"email": "youremail@gmail.com",
"homepage": "http://www.yourdomain.com",
"role": "Developer"
},
{
// 此处可增加额外的作者 格式同上
}
]
}
包的作者,是一个数组
属性如下:
1 | { |
1 | { |
例:如果你想允许依赖一个不稳定的包,你可以在一个包的版本约束后使用它,或者是一个空的版本约束内使用它。1
2
3
4
5
6{
"require": {
"monolog/monolog": "1.0.*@beta",
"acme/foo": "@dev"
}
}
如果你的依赖之一,有对另一个不稳定包的依赖,你最好在 require 中显示的定义它,并带上足够详细的稳定性标识。1
2
3
4
5
6{
"require": {
"doctrine/doctrine-fixtures-bundle": "dev-master",
"doctrine/data-fixtures": "@dev"
}
}
require 和 require-dev 还支持对 dev(开发)对dev 版本的明确引用 以确保它们被锁定到一个给定的状态,即使你运行了更新命令。你只需要明确一个开发版本号,并带上诸如 # 的标识1
2
3
4
5
6{
"require": {
"monolog/monolog": "dev-master#2eb0c0978d290a1c45346a1955188929cb4e5db7",
"acme/foo": "1.0.x-dev#abc123"
}
}
composer 自动加载器 及 资源库 配置等
必须的软件包列表,除非这些依赖被满足,否则不会完成安装。
这个列表是为开发或测试等目的,额外列出的依赖。“root 包”的 require-dev 默认是会被安装的。然而 install 或 update 支持使用 –no-dev 参数来跳过 require-dev 字段中列出的包。
此列表中的包与当前包的这个版本冲突。它们将不允许同时被安装。
这个列表中的包将被当前包取代。这使你可以 fork 一个包,以不同的名称和版本号发布,同时要求依赖于原包的其它包,在这之后依赖于你 fork 的这个包,因为它取代了原来的包。
由该包提供的其他包的列表。这主要是有用的常见的接口。一个包可以依靠一些虚拟日志包
建议安装的包 给你的用户一个建议,他们可以添加更多的包。1
2
3
4
5{
"suggest": {
"monolog/monolog": "Allows more advanced logging of the application flow"
}
}
PHP autoloader 的自动加载映射。
1 | { |
1 | { |
1 | { |
如果你想要明确的指定,在每次请求时都要载入某些文件,那么你可以使用 ‘files’ autoloading。通常作为函数库的载入方式(而非类库)。
实例:1
2
3
4
5{
"autoload": {
"files": ["src/MyLibrary/functions.php"]
}
}
1 | { |
1 | { |
1 | { |
这定义了通过稳定性过滤包的默认行为。默认为 stable(稳定)。因此如果你依赖于一个 dev(开发)包,你应该明确的进行定义。
对每个包的所有版本都会进行稳定性检查,而低于 minimum-stability 所设定的最低稳定性的版本,将在解决依赖关系时被忽略。对于个别包的特殊稳定性要求,可以在 require 或 require-dev 中设定(请参考 Package links)。
可用的稳定性标识(按字母排序):dev、alpha、beta、RC、stable。
当此选项被激活时,Composer 将优先使用更稳定的包版本。
使用 “prefer-stable”: true 来激活它。
使用自定义的包资源库 如果package list 没有的话 可以使用此项
只能在“Root包”的 composer.json 中定义。附属包中的 composer.json 将被忽略。
支持类型:
package: 如果你依赖于一个项目,它不提供任何对 composer 的支持,你就可以使用这种类型。你基本上就只需要内联一个 composer.json 对象。
例:
1 | { |
[x] 注:顺序 自上而下 即下面的资源会覆盖上面的 如果有的话
支持以下选项:
1 | { |
Composer 允许你在安装过程中的各个阶段挂接脚本。
更多细节和案例请查看 脚本。
任意的,供 scripts 使用的额外数据。.
这可以是几乎任何东西。若要从脚本事件访问处理程序,你可以这样做:
$extra = $event->getComposer()->getPackage()->getExtra();
可选。
该属性用于标注一组应被视为二进制脚本的文件,他们会被软链接到(config 对象中的)bin-dir 属性所标注的目录,以供其他依赖包调用。
详细请查看 Vendor Binaries
这些选项在创建包存档时使用。
支持以下选项:
exclude: 允许设置一个需要被排除的路径的列表。使用与 .gitignore 文件相同的语法。一个前导的(!)将会使其变成白名单而无视之前相同目录的排除设定。前导斜杠只会在项目的相对路径的开头匹配。星号为通配符。
实例:
{
“archive”: {
“exclude”: [“/foo/bar”, “baz”, “/*.test”, “!/foo/bar/baz”]
}
}
##依赖性检测 depends
说明:
depends 命令可以查出已安装在你项目中的某个包,是否正在被其它的包所依赖,并列出他们1
2
3
4
5composer depends psr/log
参数 如下
depends [-r|--recursive] [-t|--tree] [--] <package> [<constraint>]
##有效性检测 validate
说明:
在提交 composer.json 文件,和创建 tag 前,你应该始终运行 validate 命令。它将检测你的 composer.json 文件是否是有效的1
2
3
4
5php composer.phar validate
参数:
--no-check-all: Composer 是否进行完整的校验。
##依赖包状态检测 status
说明:
如果你经常修改依赖包里的代码,并且它们是从 source(自定义源)进行安装的,那么 status 命令允许你进行检查,如果你有任何本地的更改它将会给予提示。1
2
3
4composer status
composer status -v
composer status -vv
composer status -vvv
##自我更新composer self-update or selfupdate
说明:
将 Composer 自身升级到最新版本,只需要运行 self-update 命令。它将替换你的 composer.phar 文件到最新版本1
2
3
4
5
6
7
8composer self-update
<!-- 更新到特定的版本 -->
comoser self-update 1.0.0-alpha7
参数:
--rollback (-r): 回滚到你已经安装的最后一个版本。
--clean-backups: 在更新过程中删除旧的备份,这使得更新过后的当前版本是唯一可用的备份。
##更改配置 config
说明:
config 命令允许你编辑 Composer 的一些基本设置,无论是本地的 composer.json 或者全局的 config.json 文件。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20composer config --list
composer config secure-http false
composer config github-domains [github.com,github.cn]
<!-- 修改包来源 -->
comoser config repositories.foo vcs http://github.com/foo/bar
参数:
--global (-g):
<!-- 操作位于 $COMPOSER_HOME/config.json 的全局配置文件。如果不指定该参数,此命令将影响当前项目的 composer.json 文件,或 --file 参数所指向的文件。 -->
--editor (-e):
<!-- 使用文本编辑器打开 composer.json 文件。默认情况下始终是打开当前项目的文件。当存在 --global 参数时,将会打开全局 composer.json 文件。 -->
--unset:
<!-- 移除由 setting-key 指定名称的配置选项。 -->
--list (-l):
<!-- 显示当前配置选项的列表。当存在 --global 参数时,将会显示全局配置选项的列表。 -->
--file="..." (-f):
<!-- 在一个指定的文件上操作,而不是 composer.json。注意:不能与 --global 参数一起使用。 -->
##创建项目 create-project
说明:
你可以使用 Composer 从现有的包中创建一个新的项目。这相当于执行了一个 git clone 或 svn checkout 命令后将这个包的依赖安装到它自己的 vendor 目录。
此命令有几个常见的用途:
你可以快速的部署你的应用。
你可以检出任何资源包,并开发它的补丁。
多人开发项目,可以用它来加快应用的初始化。
要创建基于 Composer 的新项目,你可以使用 “create-project” 命令。传递一个包名,它会为你创建项目的目录。你也可以在第三个参数中指定版本号,否则将获取最新的版本。
如果该目录目前不存在,则会在安装过程中自动创建。
1 | composer create-project lavarel/laravel path 2.2.* |
##打印自动加载 dump-autoload
说明:
某些情况下你需要更新 autoloader,例如在你的包中加入了一个新的类。你可以使用 dump-autoload 来完成,而不必执行 install 或 update 命令。
此外,它可以打印一个优化过的,符合 PSR-0/4 规范的类的索引,这也是出于对性能的可考虑。在大型的应用中会有许多类文件,而 autoloader 会占用每个请求的很大一部分时间,使用 classmaps 或许在开发时不太方便,但它在保证性能的前提下,仍然可以获得 PSR-0/4 规范带来的便利。
1 | composer dump-autoload |
#查看许可协议 licenses1
2
3composer licenses
composer licenses --format=json
composer license --format=json --no-dev
#执行脚本 run-script1
2composer run-script testscript
<!-- 说明 关于脚本请看后面的文章 -->
#诊断 diagnose
说明:
如果你觉得发现了一个 bug 或是程序行为变得怪异,你可能需要运行 diagnose 命令,来帮助你检测一些常见的问题1
composer diagnose
#归档 archive
说明:
此命令用来对指定包的指定版本进行 zip/tar 归档。它也可以用来归档你的整个项目,不包括 excluded/ignored(排除/忽略)的文件。1
2
3
4composer archive vendor/package 2.0.21 --format=zip
参数:
--format (-f): 指定归档格式:tar 或 zip(默认为 tar)。
--dir: 指定归档存放的目录(默认为当前目录)。