WWW.lllT.neT下边由composer使用方法频道给各位详细介绍分析composer.json中全部特性字段名,期待对必须的小伙伴有些协助!

分析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

依赖包的投射表,由包名投射版本号管束。如:

{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}

(1)require

列举包所依靠的包。除非是这种依靠早已存有,不然这一包不容易被组装。

(2)require-dev(root-only)

列举开发设计这一包(或跑检测这些)所依靠的包。在应用 install 指令时,仅有携带 “–dev” 主要参数才可以组装 dev 包。在应用 update 指令时,携带 “–no-dev” 则不升级。

(3)conflict

列举包会和什么包发生争执。他们将不被容许与你的包一起组装。假如管束了版本号,则只能对于特殊的版本号。

(4)replace

列举什么包需要被这一包取代。

(5)provide

这一包所建议的包目录。这一对公共性插口最有效,一个包可以依靠一个模拟的 logger 包,而完成 logger 插口的库可以放进 provide 字段名中。

12、suggest

提议一些能让这一包任务的更强或获得提高的包目录。这种信息内容只在包组装过去进行时得出,暗示着客户可以加上大量包,尽管并不是一定要安裝的。

文件格式是,包名投射文字描述,如:

{
    "suggest": {
        "monolog/monolog": "Allows more advanced logging of the application flow"
    }
}

13、autoload

给予给 PHP autoloader 的全自动载入投射。

现阶段适用的有:PSR-0 全自动载入标准,classmap 制作器,也有 files。

PSR-0 是较为建议的,因为它的出色的扩展性(在加入新的类的合适,不用再次转化成全自动加载器)。

(1)PSR-0

在 psr-0 键名下,界定一个类名到途径的投射表,相对性于包的网站根目录。留意,这也一样适用 PEAR-style 的沒有类名的设计风格。

一定要注意类名的申明得到 \ 结束,保证全自动加载器恰当回应。

PSR-0 的引入可以在组装或升级时转化成的资料中查询:

vendor/composer/autoload_namespaces.php

事例:

{
    "autoload": {
        "psr-0": {
            "Monolog\": "src/",
            "Vendor\Namespace\": "src/",
            "Vendor_Namespace_": "src/"
        }
    }
}

假如你必须在好几个文件目录里搜索同一个作为前缀的类名,你能用二维数组,如:

{
    "autoload": {
        "psr-0": { "Monolog\": ["src/", "lib/"] }
    }
}

PSR-0 设计风格并不限于载入类名的申明的物品,还可以用以类这一等级。当库中只有一个在全局性类名中的类时,这类方法就能用上。例如你有一个 PHP 源代码放到新项目的网站根目录,你能那样申明:

{
    "autoload": {
        "psr-0": { "UniqueGlobalClass": "" }
    }
}

假如你有一个文件目录下都是用类名机构的,你能用前所未有缀:

{
    "autoload": {
        "psr-0": { "": "src/" }
    }
}

(2)Classmap

classmap 的引入可以在组装或升级时转化成的资料中查询:

vendor/composer/autoload_classmap.php

类投射表有根据扫描仪特定的文件目录或文档下的全部的 .php 和 .inc 文档转化成的。

你能给一切不兼容 PSR-0 的库用 classmap 制作器完成全自动载入。配备上只需特定类所属的文件目录或文档就可以:

{
    "autoload": {
        "classmap": ["src/", "lib/", "Something.php"]
    }
}

(3)files

假如你确定必须在一切post请求里都载入一些文档,你能应用 files 全自动载入体制。针对这些库中有一些 PHP 涵数但不可以全自动载入时尤其有效。比如:

{
    "autoload": {
        "files": ["src/MyLibrary/functions.php"]
    }
}

14、include-path

(将被弃用,它的作用由 autoload 替代。实际上便是设定 include_path,可选)

15、target-dir

特定组装总体目标途径。

假如包的网站根目录是在类名下,全自动载入就有误了,因此才有 target-dir 来处理这个问题。

Symfony 便是个事例。它由许多部件包构成。Yaml 部件是在

SymfonyComponentYaml

类名下的,它的网站根目录是 Yaml 文件目录。要让全自动载入一切正常工作中,我们要保证它并不是组装在

vendor/symfony/yaml

,反而是在

vendor/symfony/yaml/Symfony/Component/Yaml

,那样全自动加载器才可以从 vendor/symfony/yaml 载入它。

因此要界定 target-dir 如下所示:

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

16、minimum-stability(root-only)

界定依据可靠性怎样过虑包。默认设置是 stable,假如你信任一个 dev 包,你需要指出。

17、prefer-stable(root-only)

假如打开,Composer 会在平稳包和不稳定库中挑选前面一种。

18、repositories(root-only)

订制包的库房详细地址。

默认设置的,Composer 只应用 Packagist 库房。根据特定库房详细地址,你能从任何地方获得包。

库房不可以递归。你只有将他们加上到主的 composer.json 中。所依赖包中 composer.json 文档中的库房界定是被忽视的。

适用的库房的类别有:

(1)composer

composer 库房根据互联网给予 packages.json 文档,它包括一个 composer.json 目标的目录,也有附加的 dist 或 source 信息内容。packages.json 文档根据 PHP 流载入。

(2)vcs

版本号自动控制系统库房,如:git、svn、hg。

(3)pear

根据它,你能导进一切 pear 库房到你的新项目中。

(4)package

假如你依靠一个不兼容 composer 的新项目,你能界定一个 package 种类的库房,随后将 composer.json 目标立即载入。

详细的事例:

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

19、config(root-only)

对于新项目的一些配备。

process-timeout:默认设置 300 秒,Composer 过程实行请求超时時间;
use-include-path:默认设置 false,如果是 true,Composer 全自动加载器也会到 PHP 的 include_path 中搜索;
preferred-install:默认设置 auto,设定 Composer 组装方法;
github-protocols:默认设置 [“git”, “https”],设定与 github 通讯协议;
github-oauth:设定 oauth;
vendor-dir:默认设置 vendor,你能换为其他;
bin-dir:默认设置 vendor/bin,假如新项目有二进制文件,会连接到这;
cache-dir:默认设置 $home/cache,储放 Composer 运作时造成的缓存文件;
cache-files-dir:默认设置 $cache-dir/files,储放包的 zip 文档;
cache-repo-dir:默认设置 $cache-dir/repo,储放库房数据库;
cache-vcs-dir:默认设置 $cache-dir/vcs,储放 vcs 复制;
cache-files-ttl:默认设置六个月,缓存文件的到期時间;
cache-files-maxsize:默认设置 300M;
notify-no-install:默认设置 true,从库房安装文件会有一个通告,可以关闭;
discard-changes:默认设置false,如何处理脏的升级;

20、scripts(root-only)

Composer 容许你在组装过程中组装勾子脚本制作,勾子是根据事情的;

21、extra

供 scripts 交易的附加数据信息;

22、bin

特定什么文档务必被作为二进制文件解决的;

23、archive

设定建立包时的选择项,exclude 特性可以设定清除什么文件目录,比如:

{
    "archive": {
        "exclude": ["/foo/bar", "baz", "/*.test", "!/foo/bar/baz"]
    }
}

大量composer有关专业知识,请浏览composer频道:https://www.php.cn/tool/composer/

以上便是分析composer.json中全部特性字段名的详尽具体内容,大量请关心自学java网其他相关文章!

WWW.lllT.neT

声明:有的资源来自网络转载,版权归原作者所有,如有侵犯到您的权益请联系邮箱:our333@126.com我们将配合处理!

原文地址:分析composer.json中全部特性字段名发布于2021-12-08 11:16:01

相关推荐