Composer 依赖管理器
PhpStorm 与Composer依赖项管理器集成,它允许您将Packagist或自定义存储库中的包声明为项目的依赖项并从 IDE 管理它们。
PhpStorm 为使用composer.json提供全面的编码帮助,以及用于运行常见 Composer 命令的专用用户界面:
当您运行上述命令时,PhpStorm 通过Composer Log控制台显示它们的输出。
如果您希望在 PhpStorm 项目中使用所有 Composer 命令,您可以将 Composer 配置为外部命令行工具并将其运行。
下载并安装 Composer
关于安装 Composer 的详细信息,请参阅Composer 官方文档。
如果您在本地环境中工作,则 PhpStorm 中的 Composer 命令通过配置的本地 PHP 解释器运行。您可以手动下载并安装 Composer 作为系统范围的独立工具,或者在您创建新的 Composer 项目、初始化 Composer或在现有项目中调用其他 Composer 命令时让 PhpStorm 自动下载它。
此外,PhpStorm 使您可以通过任何已配置的远程 PHP 解释器运行 Composer 命令。
管理 Composer 项目
在 PhpStorm 中,您可以基于您选择的 Composer 包创建新项目或使用现有的 Composer 项目。PhpStorm 将解析依赖关系并使用composer.json中的信息自动应用某些配置选项。
创建一个新的 Composer 项目
当您创建一个新的 Composer 项目时,PhpStorm 基于您选择的 Composer 包创建一个项目,解析依赖项并将它们安装在项目的供应商目录下。
选择创建新项目。
或单击PhpStorm 欢迎屏幕上的新建项目对话框打开:
在对话框中,指定项目的参数:
选择项目类型和位置:
在左侧窗格中,选择Composer Project。
在右侧窗格的位置字段中,指定将在其中创建项目的文件夹。
选择 Composer 命令的执行方式:
要通过全局安装的composer可执行文件运行命令,请选择“composer”可执行文件并在字段中指定其位置。
要通过本地composer.phar存档运行命令,请选择composer.phar。然后,在字段中指定现有composer.phar文件的位置,或者选择从 getcomposer.org 下载 composer.phar复选框以下载该文件的新实例。下载的composer.phar文件将保存在项目根文件夹下。
然后,从PHP 解释器列表中选择一个已配置的本地 PHP 解释器。有关详细信息,请参阅配置本地 PHP 解释器。
或者,在命令行参数字段中,键入其他命令行参数。
在包区域中,在包字段中键入所需包的名称。要使用代码完成,请按Ctrl+Space。然后从要安装的版本列表中选择相关版本。
单击创建。将使用选定的包调用create-project Composer 命令。结果,将创建 Composer 项目,其配置和结构取决于所选包。之后,创建的 PhpStorm 项目将打开。
在现有项目中初始化 Composer
在项目中初始化 Composer 时,会创建composer.json。该文件列出了项目依赖项和其他元数据,并自动设置为项目默认值。
从主菜单中,选择
。Composer 设置对话框打开:
选择 Composer 命令的执行方式:
要通过全局安装的composer可执行文件运行命令,请选择“composer”可执行文件并在字段中指定其位置。
要通过本地composer.phar存档运行命令,请选择composer.phar。然后,在字段中指定现有composer.phar文件的位置,或者选择从 getcomposer.org 下载 composer.phar复选框以下载该文件的新实例。下载的composer.phar文件将保存在项目根文件夹下。
然后,从PHP 解释器列表中选择一个已配置的本地 PHP 解释器。有关详细信息,请参阅配置本地 PHP 解释器。
要通过远程解释器运行命令,请选择远程解释器。
从CLI 解释器列表中,选择要使用的远程解释器,或者单击并配置一个新的解释器,如配置远程 PHP 解释器中所述。
在大多数情况下,PhpStorm 会自动检测路径映射。如有必要,您可以单击路径映射字段并在打开的编辑项目路径映射中手动指定它们。
在Composer 可执行文件字段中,提供 Composer 可执行文件的名称。您可以单击,然后在打开的“选择服务器上的路径”对话框中找到可执行文件。
单击确定关闭Composer 设置对话框。PhpStorm 创建一个composer.json存根文件并在编辑器中打开它:
完成代码或接受生成的值。有关使用 composer.json 文件的详细信息,请参阅Composer.json:项目设置。
打开现有的 Composer 项目
当您打开现有的 Composer 项目时,PhpStorm 使用 composer.json 文件中包含的信息来自动应用某些配置选项,例如项目的内容根目录和PHP 语言级别。
在欢迎屏幕上单击打开或选择 ,然后选择存储 Composer 项目的文件夹。
PhpStorm 将显示一个通知:
单击Composer对话框中,指定composer.json文件的位置。如果 PhpStorm 检测到现有文件,则 字段将自动填充:
。在打开的配置项目设置:
默认情况下,vendor/*/*目录下的所有包都从项目中排除并添加为写保护库。要保护它们不被编辑,请选中 复选框。否则,如果您想在 vendor/*/*下编辑 Composer 包,请清除将 复选框。
确保选中composer.json的配置配置项目源和测试根。
复选框以自动检测 PHP 语言级别并根据PhpStorm 知道 PSR-0/PSR-4 源根及其命名空间前缀。它根据部分设置 Source 根,并根据
autoload
部分设置 Tests 根。PhpStorm 还根据该部分中的设置检测 PHP 语言级别。autoload-dev
php
require
由于composer.json包含有关项目配置的最新信息,因此这种自动同步可确保 Source 和 Test 文件夹与项目结构完全匹配,并自动设置正确的 PHP 语言级别。
要了解更多关于 PSR 和自动加载的信息,请参阅Composer 官网。有关同步设置的示例和详细信息,请参阅PhpStorm 博客文章。要了解有关配置内容根的更多信息,请参阅内容根。
为了在 composer.json 中检索可用的包更新并提供更好的编码帮助,每次打开项目或修改composer.json时,PhpStorm 都会在后台运行update --dry-run命令。如有必要,您可以通过清除Check for available package updates复选框来禁用运行该命令。
单击确定以应用指定的项目设置并关闭对话框。
设置 Composer 命令执行:
执行以下操作之一:
在设置/首选项对话框 ( Ctrl+Alt+S) 中,转到 。
如果您的项目中有一个composer.json文件,请选择 从主菜单Composer 设置对话框。
选择 Composer 命令的执行方式:
要通过全局安装的composer可执行文件运行命令,请选择“composer”可执行文件并在字段中指定其位置。
要通过本地composer.phar存档运行命令,请选择composer.phar。然后,在字段中指定现有composer.phar文件的位置,或者选择从 getcomposer.org 下载 composer.phar复选框以下载该文件的新实例。下载的composer.phar文件将保存在项目根文件夹下。
然后,从PHP 解释器列表中选择一个已配置的本地 PHP 解释器。有关详细信息,请参阅配置本地 PHP 解释器。
要通过远程解释器运行命令,请选择远程解释器。
从CLI 解释器列表中,选择要使用的远程解释器,或者单击并配置一个新的解释器,如配置远程 PHP 解释器中所述。
在大多数情况下,PhpStorm 会自动检测路径映射。如有必要,您可以单击路径映射字段并在打开的编辑项目路径映射中手动指定它们。
在Composer 可执行文件字段中,提供 Composer 可执行文件的名称。您可以单击,然后在打开的“选择服务器上的路径”对话框中找到可执行文件。
安装项目依赖:
如果您的项目中有一个composer.json文件,请选择 从主菜单
否则,如果您有多个composer.json文件,请选择 从相关的上下文菜单 另请参阅在 PhpStorm 项目中指定默认 composer.json。
您也可以在编辑器中打开composer.json文件,然后单击编辑器面板顶部的安装快捷方式链接。
指定项目默认 composer.json
您可以在一个 PhpStorm 项目中拥有多个composer.json文件。对于每个composer.json,操作是从其在编辑器或项目视图中的上下文菜单中调用的,或者使用编辑器面板顶部的快捷链接。您还可以为您的 PhpStorm 项目指定默认的 composer.json。它的 Composer 动作是从 主菜单项。
在设置/首选项对话框 ( Ctrl+Alt+S) 中,转到 。
指定默认composer.json的位置。如果您的 PhpStorm 项目中有一个 Composer 配置文件,则 字段会自动填充。
默认情况下,vendor/*/*目录下的所有包都从项目中排除并添加为写保护库。要保护它们不被编辑,请选中将包添加为库复选框。
否则,如果您想在vendor/*/*下编辑 Composer 包,请清除将 复选框。
确保选中composer.json的配置配置项目源和测试根。
复选框以自动检测 PHP 语言级别并根据PhpStorm 知道 PSR-0/PSR-4 源根及其命名空间前缀。它根据部分设置 Source 根,并根据
autoload
部分设置 Tests 根。PhpStorm 还根据该部分中的设置检测 PHP 语言级别。autoload-dev
php
require
由于composer.json包含有关项目配置的最新信息,因此这种自动同步可确保 Source 和 Test 文件夹与项目结构完全匹配,并自动设置正确的 PHP 语言级别。
要了解更多关于 PSR 和自动加载的信息,请参阅Composer 官网。有关同步设置的示例和详细信息,请参阅PhpStorm 博客文章。要了解有关配置内容根的更多信息,请参阅内容根。
使用 composer.json
composer.json文件描述了项目的依赖关系,还可能包含其他元数据。PhpStorm 为使用composer.json提供全面的编码帮助,并允许您直接从代码编辑器执行许多与 Composer 相关的任务。
创建一个 composer.json 文件
您可以手动创建composer.json文件。如果 Composer 尚未在项目中初始化,则新创建的composer.json将自动设置为项目默认值。
执行以下操作之一:
在Project tool 窗口Alt+1中,选择您要在其中创建新文件的目录,然后选择 主菜单中的
右键单击相应的目录并从上下文菜单中选择新建。
按Alt+Insert。
在弹出菜单中,选择composer.json 文件。PhpStorm 创建composer.json文件的存根并在编辑器中打开它。
在 composer.json 中使用代码完成
在composer.jsonCtrl+Space中,在提供部分的名称及其内容时,按下以使用代码完成,例如:
许可证类型和最低稳定性版本,
autoload
和autoload-dev
部分中的命名空间和路径,所需的 PHP 版本和扩展以及包的名称和版本在
require
和require-dev
部分。
在 composer.json 中使用快速文档
在composer.json中,按下Ctrl+Q以查看插入符号处元素的快速文档。
从 composer.json 记录导航到项目实体或设置
在composer.json中,将插入符号定位在实体上,例如已安装的包、脚本中的类或方法、文件路径或 url。然后执行以下任一操作:
在主菜单中,选择
按Ctrl+B
或者,Ctrl+Click记录。
如果您将测试框架或代码质量工具安装为项目依赖项,则 PhpStorm 会显示在相应的依赖项记录旁边。点击它可以直接跳转到相应的设置/首选项页面。
有关使用测试框架的详细信息,请参阅测试;有关使用代码质量工具的详细信息,请参阅PHP 代码质量工具。
管理依赖项
要安装、更新或卸载项目依赖,需要更新composer.jsonrequire
中或require-dev
部分的记录,然后运行对应的Composer命令。
为了在 composer.json 中检索可用的包更新并提供更好的编码帮助,每次打开项目或修改composer.json时,PhpStorm 都会在后台运行update --dry-run命令。如有必要,您可以禁用运行该命令。在设置/首选项对话框 ( ) 中,转到 并清除Check for available package updates复选框。Ctrl+Alt+S
当您打开项目或修改composer.json时,PhpStorm 会检查供应商目录是否存在。如果丢失,PhpStorm 会显示通知消息。
单击通知消息中的Run 'composer install'快捷方式链接以快速安装项目依赖项。Notify about missing 'vendor' directory复选框来禁用此通知。“设置/首选项”对话框 ( )的 页面。Ctrl+Alt+S
安装依赖项
在composer.json中,将所需的依赖记录添加到
require
orrequire-dev
部分。按Ctrl+Space以获得包名称和版本的代码完成。执行以下操作之一:
单击编辑器面板顶部的安装快捷方式链接。
如果启用了未安装的 Composer 包检查,PhpStorm 将突出显示当前未安装的已声明依赖项。按Alt+Enter并选择是否要一次安装特定依赖项或所有依赖项。
安装新包时,PhpStorm 在vendor下创建一个新子文件夹并将包存储在其中。如果是composer.lock文件。存在于当前目录中,安装其中列出的确切软件包版本。否则,如果缺少composer.lock文件,Composer 将在安装包后创建它,从而将您的项目锁定到其特定版本。
更新依赖项
您可以单独将包更新到最新版本,或一次更新composer.jsonrequire
的和require-dev
部分中列出的所有包。
当新的包版本可用或包版本要求发生变化时,PhpStorm 通过编辑器排水沟中的图标指示这一点。它还提供了有关当前安装版本和软件包可以更新到的版本的提示。
单击以更新软件包。
要更新所有包,请单击composer.json编辑器面板顶部的更新快捷方式链接。
卸载依赖项
从composer.json
require
的orrequire-dev
部分删除包记录。单击composer.json编辑器面板顶部的更新快捷方式链接。
使用自定义包存储库
除了Packagist之外,您还可以使用自定义包存储库。
创建和运行 Composer 脚本
使用 Composer,您可以创建和运行脚本,这些脚本用于在 Composer 执行过程中执行一些自定义代码或特定于包的命令。
定义 Composer 脚本
重命名 Composer 脚本
运行作曲家脚本
单击要执行的脚本旁边的装订线。从列表中,选择Run <script name>。
在要运行的脚本内右键单击,然后从上下文菜单中选择Run <script name> 。
将插入符号放在要执行的脚本上,按下Alt+Enter并选择Run <script name>意图操作。
执行脚本时,PhpStorm 会自动为其创建一个专用的临时Composer 脚本运行/调试配置。如有必要,您可以将其保存为永久运行/调试配置。
创建 Composer 脚本运行/调试配置
您可以使用Composer Script类型的运行配置来执行 Composer 脚本。使用运行配置,您可以随时执行脚本、将其添加到服务工具窗口或复合配置。有关详细信息,请参阅使用运行/调试配置。
执行以下任一操作:
在编辑器中,右键单击所需的脚本记录,然后从上下文菜单中选择Create <configuration name> 。
或者,选择Composer Script 。
从主菜单 ,然后单击并从列表中选择
提供运行/调试配置参数:
composer.json 的路径:在此字段中,提供包含所需脚本定义的composer.json的路径。
脚本:从此列表中,选择要执行的已定义 Composer 脚本之一。
命令行参数:在此字段中,键入附加的命令行参数。这些参数将作为 CLI 参数传递给 CLI 处理程序;在 PHP 处理程序中,可以通过调用将它们作为数组检索
$event->getArguments()
。
保存临时 Composer 脚本运行/调试配置
当您从编辑器执行 Composer 脚本时,PhpStorm 会自动使用脚本参数创建临时运行/调试配置。临时运行/调试配置的工作方式与永久运行/调试配置相同。您可以使用“运行/调试配置”对话框更改其设置,并可选择将其保存为永久。
在Run/Debug Configuration选择器中,选择 。
在“运行/调试配置”对话框中,选择配置并单击。
使用运行/调试配置执行 Composer 脚本
在运行/调试配置选择器中,选择所需的运行配置。然后单击主工具栏上的 或按Shift+F10。
按Alt+Shift+F10,从列表中选择所需的运行配置,然后按Enter。
查看作曲家日志
当您通过 PhpStorm 界面执行 Composer 相关命令时,命令的输出会显示在专用的Composer 日志控制台中:
打开作曲家日志
首次执行任何 Composer 命令后,单击事件日志通知消息中的Show in log快捷方式链接:
在编辑器中打开composer.json并单击编辑器面板顶部的显示日志快捷方式链接。
查看折叠的 Composer Log 消息
如果 Composer 命令已成功执行,Composer Log将折叠其执行详细信息。
单击装订线以展开消息。
将鼠标悬停在省略号上以查看工具提示中的消息:
在项目中指定默认的 composer.json 时,可以启用 PhpStorm 与 composer.json的设置同步。Composer Log将突出显示设置中发生的此类更改。在装订线中单击它以快速导航到相应的目录、PHP、测试框架或PHP 命令行工具设置页面。
运行其他 Composer 命令
PhpStorm 为一组附加的 Composer 命令提供了用户界面。
从composer.json上下文菜单中,选择 。
在编辑器中打开composer.json,单击composer.json编辑器面板顶部,然后从列表中选择所需的命令。
要为默认 composer.json运行命令,请选择 来自主菜单。
如果未设置 Composer 执行,则会打开Composer 设置对话框,提示您选择如何执行 Composer 命令:
要通过全局安装的composer可执行文件运行命令,请选择“composer”可执行文件并在字段中指定其位置。
要通过本地composer.phar存档运行命令,请选择composer.phar。然后,在字段中指定现有composer.phar文件的位置,或者选择从 getcomposer.org 下载 composer.phar复选框以下载该文件的新实例。下载的composer.phar文件将保存在项目根文件夹下。
然后,从PHP 解释器列表中选择一个已配置的本地 PHP 解释器。有关详细信息,请参阅配置本地 PHP 解释器。
要通过远程解释器运行命令,请选择远程解释器。
从CLI 解释器列表中,选择要使用的远程解释器,或者单击并配置一个新的解释器,如配置远程 PHP 解释器中所述。
在大多数情况下,PhpStorm 会自动检测路径映射。如有必要,您可以单击路径映射字段并在打开的编辑项目路径映射中手动指定它们。
在Composer 可执行文件字段中,提供 Composer 可执行文件的名称。您可以单击,然后在打开的“选择服务器上的路径”对话框中找到可执行文件。
证实
运行此命令以对composer.json文件执行多项有效性检查,建议在将composer.json提交到 VCS 之前执行此操作。验证结果显示在Composer 日志控制台中。
等效的CLI 命令是validate。
在执行命令之前,在Validation Settings对话框中选择所需的选项:
允许未绑定的版本约束:如果选中,将允许没有上限的版本约束(例如
*
, )。>3.1
请注意,这将允许更新任何未来版本的依赖项,这可能会在依赖项发生意外更改的情况下导致向后兼容性问题。的等效选项CLI 命令是
--no-check-all
.检查 composer.lock 是否是最新的:如果选中,则 composer.lock 中列出的版本约束将与composer.json中列出的约束进行检查。如果版本约束不匹配,建议通过更新包来解决此问题。将包更新到所需版本后,composer.lock和composer.json文件将同步。
的等效选项CLI 命令是
--no-check-lock
.检查包是否为 Packagist-ready:如果选择,包的composer.json将根据Packagist发布要求进行检查。通常,对于 Packagist-ready 的包,必须指定其composer.json
name
文件中的、description
和require
部分。有关发布包的详细信息,请参阅Packagist 文档。的等效选项CLI 命令是
--no-check-publish
.Validate package dependencies:如果选中,则当前包的所有已安装依赖项的composer.json文件也将被验证。
的等效选项CLI 命令是
--with-dependencies
.
转储自动装载机
运行此命令以生成自动加载的类列表。如果列表已经存在,则会重新生成。当您在项目中引入新类并需要将其包含到自动加载的类列表中时,这可能很有用。有关使用 Composer 自动加载类的更多详细信息,请参阅Composer 文档。
等效的CLI 命令是dump-autoload。
在执行命令之前,在Autoloader Generation Settings对话框中选择所需的选项:
跳过脚本执行:如果选中,则不会执行composer.json文件
scripts
部分中定义的脚本。的等效选项CLI 命令是
--no-scripts
.优化自动加载器(将 PSR-0/4 规则转换为类映射):如果选中,Composer 将扫描给定的 PSR-0/4 自动加载目录/文件中的php和inc文件并生成单个
autoload_classmap
键值数组以加速自动加载. 请注意,如果类的数量很大,则运行此命令可能会很耗时。的等效选项CLI 命令是
--optimize
.仅从类映射中自动加载类:如果选中,则仅自动加载类映射中列出的类。Composer 不会搜索未在类映射中列出的类的备用 PSR-4 目录。由于这自然需要现有的类映射,因此 Composer 还将执行优化自动加载器(将 PSR-0/4 规则转换为类映射)命令来生成一个,这可能是一个耗时的过程。
的等效选项CLI 命令是
--classmap-authoritative
.使用 APCu 缓存找到/未找到的类:如果选中,将启用通过APCu进行缓存。当在类映射中找到(或未找到)一个类时,对应的记录会缓存在 APCu 中,以便在下次请求时快速检索。
的等效选项CLI 命令是
--apcu
.Disable autoload-dev dependencies:如果选中,则该
autoload-dev
部分中列出的自动加载的命名空间和文件不会包含在自动加载的类列表中。的等效选项CLI 命令是
--no-dev
.
检查依赖项的变化
运行此命令以检查包依赖项的代码中是否有任何本地更改。
等效的CLI 命令是status。
清除缓存
运行此命令删除 Composer 的缓存目录,该目录包含下载的包。默认情况下,缓存目录在 Windows 上设置为C:\Users\<user>\AppData\Local\Composer ,在 Linux 和 macOS 上设置为~/.composer/cache 。有关详细信息,请参阅Composer 文档。
等效的CLI 命令是clear-cache。
列出许可证
运行此命令可查看每个已安装软件包的名称、版本和许可证类型。
等效的CLI 命令是licenses。
诊断
运行此命令以自动检查最常见的 Composer 问题(例如连接问题、使用的 Composer/PHP 版本、可用磁盘空间、composer.json有效性)。如果未发现问题,请参阅Composer 故障排除指南。
等效的CLI 命令是diagnostic。
模拟更新
运行此命令以模拟更新依赖项而不实际运行composer update
. 这样做,您可以验证是否所有依赖项都已成功解决并预览更改,同时保持一切完好无损。
等效的CLI 命令是update --dry-run。
为了在 composer.json 中检索可用的包更新并提供更好的编码帮助,每次打开项目或修改composer.json时,PhpStorm 都会在后台运行update --dry-run命令。如有必要,您可以禁用运行该命令。在设置/首选项对话框 ( ) 中,转到 并清除Check for available package updates复选框。Ctrl+Alt+S
自我更新
运行此命令将 Composer 本身(即composer.phar文件)更新到最新版本。
等效的CLI 命令是self-update。
从命令行运行 Composer
命令行模式为您提供了完整的 Composer 命令。要在此模式下使用 Composer,您需要将其配置为外部命令行工具。有关使用命令行工具的详细信息,请参阅PHP 命令行工具。
您可以配置多个 Composer 实例,并通过在Composer 初始化期间指定相关实例在它们之间从一个项目切换到另一个项目。
将 Composer 配置为命令行工具
在设置/首选项对话框 ( Ctrl+Alt+S) 中,转到 。
单击工具栏上的 。
在“命令行工具”对话框中,从列表中选择 Composer,并指定其可见性级别(项目或全局)。
单击OK时,将打开对话框。
通过选择以下选项之一指定您希望如何启动 Composer:composer.phar 或 php script或composer executable。根据您的选择,指定 PHP 安装文件夹和composer.phar或composer可执行文件的路径。
PhpStorm 为 Composer 命令解析指定.phar存档或可执行文件的内容。文件分析完成后,PhpStorm 返回到命令行工具支持页面,其中指定的文件被添加到 PhpStorm 中可用的命令行工具列表中。
单击确定应用更改并返回命令行工具支持页面。或者,单击以编辑工具属性或自定义命令集。有关详细信息,请参阅自定义工具。
运行 Composer 命令
从主菜单中,选择
或按Ctrl两次。在打开的“运行任何内容”窗口中,以
<c> <command>
格式键入命令的调用。命令执行结果显示在运行工具窗口中。
终止命令
单击运行工具窗口工具栏。