JSON

composer.json 架构(3)

字号+ 作者:H5之家 来源:H5之家 2018-07-05 16:12 我要评论( )

Example: {autoload: {psr-4: { MyLibrary\\: src/ }},autoload-dev: {psr-4: { MyLibrary\\Tests\\: tests/ }}}include-path 不建议:这是目前唯一支持传统项目的做法,所有新的代码都建议使用自动加载。这是一个

Example:

{ "autoload": { "psr-4": { "MyLibrary\\": "src/" } }, "autoload-dev": { "psr-4": { "MyLibrary\\Tests\\": "tests/" } } } include-path

不建议:这是目前唯一支持传统项目的做法,所有新的代码都建议使用自动加载。 这是一个过时的做法,但 Composer 将仍然保留这个功能。

一个追加到 PHP include_path 中的列表。

实例:

{ "include-path": ["lib/"] }

可选。

target-dir

DEPRECATED: This is only present to support legacy PSR-0 style autoloading, and all new code should preferably use PSR-4 without target-dir and projects using PSR-0 with PHP namespaces are encouraged to migrate to PSR-4 instead.

定义当前包安装的目标文件夹。

若某个包的根目录,在它申明的命名空间之下,将不能正确的使用自动加载。而 target-dir 解决了这个问题。

Symfony 就是一个例子。它有一些独立的包作为组件。Yaml 组件就放在 Symfony\Component\Yaml 目录下,然而这个包的根目录实际上是 Yaml。为了使自动加载成为可能,我们需要确保它不会被安装到 vendor/symfony/yaml,而是安装到 vendor/symfony/yaml/Symfony/Component/Yaml,从而使 Symfony 定义的 autoloader 可以从 vendor/symfony/yaml 加载它。

要做到这一点 autoload 和 target-dir 应该定义如下:

{ "autoload": { "psr-0": { "Symfony\\Component\\Yaml\\": "" } }, "target-dir": "Symfony/Component/Yaml" }

可选。

minimum-stability (root-only)

这定义了通过稳定性过滤包的默认行为。默认为 stable(稳定)。因此如果你依赖于一个 dev(开发)包,你应该明确的进行定义。

对每个包的所有版本都会进行稳定性检查,而低于 minimum-stability 所设定的最低稳定性的版本,将在解决依赖关系时被忽略。对于个别包的特殊稳定性要求,可以在 require 或 require-dev 中设定(请参考 )。

可用的稳定性标识(按字母排序):dev、alpha、beta、RC、stable。

prefer-stable (root-only)

当此选项被激活时,Composer 将优先使用更稳定的包版本。

使用 "prefer-stable": true 来激活它。

repositories (root-only)

使用自定义的包资源库。

默认情况下 composer 只使用 packagist 作为包的资源库。通过指定资源库,你可以从其他地方获取资源包。

Repositories 并不是递归调用的,只能在“Root包”的 composer.json 中定义。附属包中的 composer.json 将被忽略。

支持以下类型的包资源库:

更多相关内容,请查看 资源库。

实例:

{ "repositories": [ { "type": "composer", "url": "" }, { "type": "composer", "url": "https://packages.example.com", "options": { "ssl": { "verify_peer": "true" } } }, { "type": "vcs", "url": "https://github.com/Seldaek/monolog" }, { "type": "pear", "url": "" }, { "type": "package", "package": { "name": "smarty/smarty", "version": "3.1.7", "dist": { "url": "", "type": "zip" }, "source": { "url": "", "type": "svn", "reference": "tags/Smarty_3_1_7/distribution/" } } } ] }

注意: 顺序是非常重要的,当 Composer 查找资源包时,它会按照顺序进行。默认情况下 Packagist 是最后加入的,因此自定义设置将可以覆盖 Packagist 上的包。

config (root-only)

下面的这一组选项,仅用于项目。

支持以下选项:

  • github-oauth: 一个域名和 oauth keys 的列表。 例如:使用 {"github.com": "oauthtoken"} 作为此选项的值, 将使用 oauthtoken 来访问 github 上的私人仓库,并绕过 low IP-based rate 的 API 限制。 关于如何获取 GitHub 的 OAuth token。
  • optimize-autoloader Defaults to false. Always optimize when dumping the autoloader.
  • 实例:

    { "config": { "bin-dir": "bin" } } scripts (root-only)

    Composer 允许你在安装过程中的各个阶段挂接脚本。

    更多细节和案例请查看 脚本。

    extra

    任意的,供 scripts 使用的额外数据。.

    这可以是几乎任何东西。若要从脚本事件访问处理程序,你可以这样做:

    $extra = $event->getComposer()->getPackage()->getExtra();

    可选。

    bin

    该属性用于标注一组应被视为二进制脚本的文件,他们会被软链接到(config 对象中的)bin-dir 属性所标注的目录,以供其他依赖包调用。

    详细请查看 Vendor Binaries。

    可选。

    archive

    这些选项在创建包存档时使用。

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • 适用于PHP初学者的学习线路和建议

      适用于PHP初学者的学习线路和建议

      2018-06-20 08:08

    • php语言中json与数组之间的相互转换

      php语言中json与数组之间的相互转换

      2018-04-23 17:00

    • php读取本地json文件的实例,php读取本地json文件,php 读取json,j

      php读取本地json文件的实例,php读取本地json文件,php 读取json,j

      2018-03-10 18:01

    • 优就业PHP学院

      优就业PHP学院

      2018-01-27 08:04

    网友点评