Composer (软件)

维基百科,自由的百科全书
跳转到导航 跳转到搜索
Composer
File:Logo-composer-transparent.png
开发者Nils Adermann
Jordi Boggiano
当前版本
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    源代码库
    • {{URL|example.com|可选的显示文本}}
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    编程语言PHP
    引擎
      Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
      操作系统Cross-platform
      类型软件包管理系统
      许可协议MIT许可证
      网站getcomposer.org

      Composer[1][2][1]PHP软件包管理系统,它提供用于管理PHP软件和依赖库关系的标准格式,它在单个项目的基础上进行管理,会在单个项目的某个目录(默认是vendor)进行安装。 它由Nils AdermannJordi Boggiano开发。 他们于2011年4月开始开发,并于2012年3月1日首次发布第一个版本。[3]Composer 的产生是由于受到了 Node.jsnpm 以及 Rubybundler 的启发。[4] 该项目的依赖关系解决算法最初是来自openSUSElibzypp包管理器。

      在中国使用composer的时候,由于网络延迟以及防火长城问题,通常会通过镜像使用,数据的获取,文件的下载通过镜像使用。

      使用语法[编辑]

      命令[编辑]

      Composer 提供了几个参数,包括[5]

      • require:向composer.json添加一个依赖库,并且安装它
      • install:从composer.json安装依赖库,通常在下载一个PHP项目的所有依赖时使用
      • update:根据composer.json中允许的版本范围更新依赖库
      • remove:删除一个依赖库,并将其从composer.json中移除
      • self-update:更新composer自身

      依赖库定义[编辑]

      composer require monolog/monolog

      以上命令会在composer.json中生成

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

      指定版本[编辑]

      所安装依赖库的版本可以由以下几种运算符定义:[6]

      运算符 作用 (放置在版本号前时) 示例
      >= 允许高于此版本的依赖

      以此类推,我们可以使用><<=

      "php": ">=5.5.9" 包括 PHP 7
      != 排除一个版本的依赖
      - 定义一个依赖的范围
      || 或运算符,寻找二者中存在的版本 "symfony/symfony": "2.8 ¦¦ 3.0" 将查找该依赖的2.8或3.0版本
      * 通配符,允许一切符合要求的子版本 "symfony/symfony": "3.1.*" 包括 3.1.1 版本
      ~ 允许同级别的下一个版本 "doctrine/orm": "~2.5" 包括 2.6,但是不包括 2.4 或 3.0.
      ^ 类似于~,但是只允许向后兼容的版本

      支持的框架[编辑]

      注解[编辑]

      1. ^ 1.0 1.1 Fomin, Igor. Get PHP Composer to Run On Docker Container [A How To Guide]. HackerNoon. 2020-01-26 [2026-01-01]. 
      2. ^ Paganini, Pierluigi. Command injection flaw in PHP Composer allowed supply-chain attacks. Security Affairs. 2021-04-29 [2026-01-01]. 
      3. ^ Release 1.0.0-alpha1 · composer/composer. GitHub. [2020-08-06]. (原始内容存档于2019-03-27) (English). 
      4. ^ Introduction - Composer. getcomposer.org. [2020-08-06]. (原始内容存档于2018-02-12). 
      5. ^ Command-line interface / Commands - Composer. getcomposer.org. [2020-08-06]. (原始内容存档于2020-08-04). 
      6. ^ Versions and constraints - Composer. getcomposer.org. [2020-08-06]. (原始内容存档于2020-09-14). 

      外部链接[编辑]