标签 composer 下的文章

composer 学习

之前一直看前端再用npm,看着挺牛b,最近学习java,接触了maven,docker,果然是很牛B。想起来php也有个类似的composer,之前虽然在用,但是一直没有系统的看过一遍,这次仔仔细细看看,哈哈。

安装composer

curl -sS https://getcomposer.org/installer | php

composer文件

文件名 : composer.json
例子如下

{
  "name": "test",
  # require中存放的就是需要安装的第三方包
  "require": {
    # php版本
    "php" : "~7.4",
    "monolog/monolog": "1.0.*",
    # 指定需要的扩展
    "ext-json": "*",
    # 限定PHP库的版本
    "lib-curl": "*"
  }
}

包版本

名称实例描述
确切的版本号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.json之后就可以安装了,linux执行下面命令即可

composer install

composer.lock - 锁文件

在安装依赖后,Composer会将安装时确切的版本号写入composer.lock文件。这将锁定该项目的特点版本。
这是非常重要的,因为install命令将会检查锁文件是否存在,如果存在,则将直接下载指定的版本。如果不存在,则将读取composer.json文件并创建锁文件。
这意味着,只要有锁文件存在,就算第三方的依赖包发生了更新,执行install命令也不会获得更新。如果需要获取更新,可以执行composer update命令。

在php中使用

composer提供了自动加载的功能,如下

require_once "vendor/autoload.php";

$logger = new \Monolog\Logger('test');
$logger->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));

$logger->addError("123456");

常用命令

命令很多,就列几个感觉会比较常用的

composer install : 安装,优先读取lock文件,没有则读取composer.json文件并生成lock文件
composer update : 读取composer.json文件更新依赖,并更新lock文件,也可以更新指定的包,例 : php composer.phar update vendor/package vendor/package2

composer require : 增加新的依赖到当前目录的composer.json,例 : php composer.phar require vendor/package:2.* vendor/package2:dev-master

composer create-project : 使用现有的包创建一个项目,相当于执行了git clone,常用的场景

  • 你可以快速的部署你的应用。
  • 你可以检出任何资源包,并开发它的补丁。
  • 多人开发项目,可以用它来加快应用的初始化。