推荐六个不为人知的 Composer 命令

文章转发自专业的Laravel开发者社区,原始连接:learnku.com/laravel/t/2…php

Composer 是 PHP 的一个依赖管理工具。 若是你是一名 PHP 开发人员,那么你极可能天天都在使用它而且频繁的运行命令 require, install 和 update。也许你并无意识到, 咱们可使用一些其余的 Composer 命令,来更加轻松的使用它。laravel

它有许多的命令可使用,但今天我将分享我使用的而且天天都有帮助的 6 个命令。shell

show

先说下 show 命令。它容许您查看项目的全部已安装包(包括依赖项),以及查看相关包的说明。全部这些信息均可以在Composer锁文件(composer.lock)中找到, 可是使用 show 命令相对来讲是一种更简单、更方便的一种查看包信息的方法。bash

要列出全部已安装的包及其版本号和说明,只需使用 show:composer

composer show

复制代码

有时候把这些信息用依赖关系树的形式查看会更容易理解, 能够经过 --tree or -t 参数:框架

composer show -t

复制代码

若是要筛选返回的包,可使用通配符传递一个额外的字符串参数 *:工具

composer show 'symfony/*'

复制代码

这将返回全部已安装的symfony包。注意这里的引号, 若是您使用的是 bash shell,不须要加这个引号, 可是若是您使用的是 zsh 你不用引号的话就会报 ‘no matches found’ 错误。ui

若是要查看有关特定包的信息,须要完整包名:spa

composer show laravel/framework

复制代码

这将向您显示安装的版本、它的许可证和依赖项以及它在本地安装的位置等信息。code

why

若是您想知道安装特定软件包的缘由,可使用 why 命令来肯定哪些依赖项须要它:

composer why vlucas/phpdotenv

复制代码

why 是depends命令的别名,但就我我的而言,我发现使用 ‘why’ 更容易记住。您可使用--tree-t标志在依赖树中查看此信息:

composer why vlucas/phpdotenv -t

复制代码

why-not

有时,一个或多个已安装的软件包将阻止安装或更新软件包。 为了检查是哪些安装包,咱们可使用 why-not 命令(别名为 prohibits)。 例如,Laravel 最近发布了一个新的5.8版本的框架; 咱们可使用 why-not 命令检查任何阻止咱们更新 laravel/framework 包的包:

composer why-not laravel/framework 5.8

复制代码

一样,咱们可使用 --tree-t 标记在依赖关系树中查看此信息:

composer why-not laravel/framework 5.8 -t

复制代码

outdated

在使用 composer update 命令前,你也许想检测一下已安装的包,哪些有能够升级的。这可使用 outdated 命令。

composer outdated

复制代码

此命令是 composer show -lo 的别名之一。

根据语义化的版本,返回着色的代码,来标明每一个包的状态:

  • Green: 当前安装包已经是最新版本
  • Yellow: 有可升级的更新, 但可能有不兼容的修改。
  • Red: 有可用的小版本升级 (通常是bug修复)

若是但愿高亮显示小的升级版本, 可使用 outdated 命令,以--minor-only 或者 -m 参数 :

composer outdated -m

复制代码

状态

我发现本身常常会使用 installupdate 命令的参数 --prefer-source 来处理源代码安装的依赖项。 而后,若是我修改了任何这些依赖项,我须要一种快速检查哪些包已被修改的方法。 status 命令提供了一种方便的方法。

您可使用 --verbose-v 参数来查看本地修改的软件包和文件:

composer status -v

复制代码

我发现使用 verbose 标记是使用此命令最有用的方法。

许可

最后,知道您安装的每一个软件包的许可证是很是有用的。 Composer 有一个方便的 licenses 命令,用于查询许可的完整列表:

composer licenses

复制代码
相关文章
相关标签/搜索