composer的一些command

2020-09-07  本文已影响0人  芒鞋儿

01
composer是包管理工具,其设定file主要在composer.json中定义。

composer require <package_name> // 例如:swiftmailer/swiftmailer

此命令执行之后,composer.json 会自动加入以下设定,例如:

"require": {
    "swiftmailer/swiftmailer": "^5.4"  
}

也可以先在以上file中加入package的设定,然后运行 composer install 进行安装,但如果已有安装的package,通常composer.lock会发出警告,可以先删除lock文件再重新进行安装,也可以执行 composer update --lock ,参看03

如果执行时候加上 --dev Option

composer require filp/whoops  --dev  //例如 filp/whoops 一个errhandler的package

表示安装dev环境下的包,在json文件中自动加上:

"require": {
    "filp/whoops": "^2.1"  
}

关于version 的表示详解如下:
^ Caret Rage:
^1.2.3 表示>=1.2.3 <2.0.0 , 对于1.0以下版本:^0.3 表示 >=0.3.0 < 0.4

~ Tilde Rage:
范围控制更精确
~1.2.3 表示 >=1.2.3 <1.3.0

|| 表示多种兼容
eg. ^5.7 || ^7.0
这种方式来表示多个不连续的版本号空间

02
autoload
classmap, namespace, file 等可以在json 中设定如下,再通过autoload 文件自动导入,省略require 文件的书写

"autoload": {
  "classmap": ["classes/", "libs/"],
  "files": ["config/database.php"],
  "psr-4": {
      "" : "src/"  //这表示所有的namespace 都到src下寻找
      "App\\Book\\": "src/book/"  
      //具体表示app/book的namespace路径,有了上面general 的设定,此处可省略。
  }
}

autoload 根据composer.json的设定产生autoload.php

composer dumpautoload

但每次package 更新的时候都需要重新执行以上命令,因此可以修改为

composer dumpload -o    //optimized 

或者在composer.json 中加入:

 "config": {
    "optimize-autoloader": true
 }

03
其他命令:
移除package

composer remove <package_name>

如果事先在composer.json 中写好要安装的package名和其版本号,可以用composer install 集中安装。

composer install

通常安装之后会自动加入composer.lock 以锁定版本,如果需要更新的话,可以用以下命令:

composer update --lock

还有

composer update <package_name> // 对package 进行upd
composer update  //对所有package upd
composer self-update // composer 自己upd
上一篇 下一篇

猜你喜欢

热点阅读