美文网首页
composer基础知识

composer基础知识

作者: gao922699 | 来源:发表于2022-07-20 09:37 被阅读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 提供脚本使用的额外数据

    相关文章

      网友评论

          本文标题:composer基础知识

          本文链接:https://www.haomeiwen.com/subject/lvseirtx.html