composer.json中的各个属性字段详解
1、name
包的名字。由供应⽅(vendor)名和项⽬名组成,⽤ / 分隔。
在发布包的时候需要填。
2、description
对包的⼀个简短描述,通常是⼀⾏的长度。
在发布包的时候需要填。
3、version
包的版本。
格式必须是 X.Y.Z,选择性后缀:-dev、-alphaN、-betaN、-RCN。
4、type
包的类型,默认为 library。
包类型⽤于定制安装逻辑。如果你的包的安装需要⼀些特殊的逻辑,你可以定义⼀个定制的类型。它可以是⼀个 symfony-bundle 的类型,或者 wordpress-plugin,或者 typo3-module。这些类型将被特定的项⽬所⽤,它们将提供安装器来安装这些类型的包。
Composer ⽀持 3 种类型:
library:默认值。它将复制⽂件到 vendor ⽬录。
project:它表⽰这是个项⽬,⽽不是库。⽐如像 Symfony 标准版这种应⽤。
metapackage:⼀个含有依赖的空包,能触发安装,但不包含⽂件,不会向⽂件系统写任何东西。
composer-install:为其他的定制类型的包提供安装器的包。
5、keywords
⼀个与包相关的关键词数组。⽤于包的搜索和过滤。
可选。
6、homepage
项⽬的⽹站 URL。
可选。
7、time
版本发布时间。必须是 YYYY-MM-DD 或 YYYY-MM-DD HH:MM:SS 格式。
可选。
8、license
包的许可证。可以是字符串或字符串数组。
可选,但强烈建议加上。
9、authors
包的作者。是个对象数组。
每个 author 对象有这些属性:
name:作者名字
email:作者邮箱
homepage:作者⽹站 URL
role:作者在项⽬中的⾓⾊(如:developer 或 translator)
10、support
各种关于该项⽬如何获取⽀持的信息。包含这些属性:
email:获取⽀持的邮箱
issues:问题跟踪的 URL
forum:论坛的 URL
wiki:Wiki 的 URL
irc:IRC 的频道
source:查看或下载源码的 URL
可选。
11、Package links
依赖包的映射表,由包名映射版本约束。如:
(1)require
列出包所依赖的包。除⾮这些依赖已经存在,否则这个包不会被安装。
(2)require-dev(root-only)
列出开发这个包(或跑测试等等)所依赖的包。在使⽤ install 命令时,只有带上 “–dev” 参数才能安装 dev 包。在使⽤ update 命令时,带上“–no-dev” 则不更新。
(3)conflict
列出包会和哪些包发⽣冲突。它们将不被允许和你的包⼀起安装。如果约束了版本,则只会针对特定的版本。
(4)replace
列出哪些包要被这个包替代。
(5)provide
这个包所推荐的包列表。这个对公共接⼝最有⽤,⼀个包可以依赖⼀个虚拟的 logger 包,⽽实现 logg
er 接⼝的库可以放到 provide 字段中。
12、suggest
建议⼀些能让这个包⼯作的更好或得到增强的包列表。这些信息只在包安装完成时给出,暗⽰⽤户可以添加更多包,虽然不是必须要安装的。
格式是,包名映射⽂字说明,如:
13、autoload
提供给 PHP autoloader 的⾃动加载映射。
⽬前⽀持的有:PSR-0 ⾃动加载规范,classmap ⽣成器,还有 files。
PSR-0 是⽐较推荐的,因为它的优秀的扩展性(在添加新的类的适合,不需要重新⽣成⾃动加载器)。json值的类型有哪些
(1)PSR-0
在 psr-0 键名下,定义⼀个命名空间到路径的映射表,相对于包的根⽬录。注意,这也同样⽀持 PEAR-style 的没有命名空间的风格。请注意命名空间的声明得以 \\ 结尾,确保⾃动加载器正确响应。
PSR-0 的引⽤可以在安装或更新时⽣成的⽂件中查看:
vendor/composer/autoload_namespaces.php
例⼦:
如果你需要在多个⽬录⾥查同⼀个前缀的命名空间,你可以⽤数组,如:
PSR-0 风格并不局限于加载命名空间的声明的东西,也可以⽤于类这个层级。当库中只有⼀个在全局命名空间中的类时,这种⽅式就能⽤上。⽐如你有个 PHP 源⽂件放在项⽬的根⽬录,你可以这样声明:
如果你有个⽬录下全是⽤命名空间组织的,你可以⽤空前缀:
(2)Classmap
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论