brianhenryie/composer-phpstorm

Composer 脚本用于从 PhpStorm 代码导航中排除文件夹。

安装: 101

依赖者: 2

建议者: 0

安全: 0

星标: 1

观察者: 3

分支: 0

开放问题: 3

类型:composer-plugin

0.4 2024-06-18 19:16 UTC

This package is auto-updated.

Last update: 2024-09-18 19:46:16 UTC


README

PHPCS PSR12

Composer-PhpStorm

自动为 PHPUnit 创建 PhpStorm 运行配置,将文件夹标记为排除,并配置 WordPress 集成。

已测试从 PhpStorm 2019.3 到 2024.1.2

概述

  • ExcludeFolders 标记指定的文件夹、符号链接文件夹和由 Mozart 管理的包,通过将条目添加到项目的 .iml 配置文件中,使其从 PhpStorm 代码导航和完成中排除。
  • PHPUnitRunConfigurations 为项目中的每个找到的 phpunit.xml 创建一个 运行配置(忽略 /vendor/wp-content),通过将条目添加到 workspace.xml 中实现。
  • WordPress 搜索 WordPress 安装并启用 WordPress 支持。

安装

composer config allow-plugins.brianhenryie/composer-phpstorm true
composer require --dev brianhenryie/composer-phpstorm

可选

"extra": {
 "phpstorm": {
  "exclude_folders": {
  	"folders": [
   		"path/to/folder_one/from/project/base",
  		"path/to/folder_two/from/project/base"    
   ],
   "include_folders": [
  		"path/to/folder_one/from/project/base",
   ],
   "composer-symlinks": false
  }
 }
}

操作

ExcludeFolders

可以在 extras/phpstorm/exclude_folders/folders 下指定要排除的文件夹。这些假定是从项目根目录相对的。

PhpStorm 会自动将 vendor 目录内的项目文件夹添加到其排除文件夹列表中,因此将它们添加到 folders 列表并不能达到预期效果。相反,应该将 vendor/vendor-name/project/src 文件夹添加到 exculde_folders/folders 列表,并且出人意料的是,应该将 vendor/vendor-name/project/src 添加到 exculde_folders/include_folders 列表。

用于前缀包命名空间的 Composer 工具 coenjacobs/mozart 导致每个类都被复制,因此每个 classname::function 在 PhpStorm 的代码完成中都有多个实现。此工具读取 Mozart Composer 配置,并排除由 Mozart 管理的包的源文件夹。

如果符号链接的文件源在项目目录中,则由 kporras07/composer-symlinks 创建的符号链接会被排除。可以通过在您的 composer.json 中将 extras/phpstorm/exclude_folders/folders 设置为 false 来禁用此功能。如果符号链接的文件源在项目的根目录中,则不会被排除。

/.idea/project-name.iml<component name="NewModuleRootManager"> <content url="file://$MODULE_DIR$"> 中添加

<excludeFolder url="file://$MODULE_DIR$/foldertoexclude"/>

PHPUnitRunConfigurations

该脚本搜索项目目录中的 phpunit.xml 并为每个找到的创建一个 PhpStorm 运行配置(忽略 /vendor/ 下的),当在项目根文件夹中找到时使用名称 phpunit,否则使用文件夹名称。

/.idea/workspace.xml<component name="RunManager"> 中添加

<configuration name="tests" type="PHPUnitRunConfigurationType" factoryName="PHPUnit">
  <TestRunner configuration_file="$PROJECT_DIR$/tests/phpunit.xml" scope="XML" use_alternative_configuration_file="true"/>
  <method v="2"/>
</configuration>

为什么?

WordPress。我编写了许多小插件 [1],这将为我不太关心的一些按钮点击。

待办事项

  • 可以搜索符号链接,然后检查它们是否指向项目目录内部,而不是从 composer.json 中读取。
  • 设置默认解释器(PHP 语言级别/CLI 解释器)
  • 配置以允许排除自动发现的 phpunit.xml
  • 应找到由 Mozart 处理的子包
  • 设置 PHP 语言级别
  • 设置 PHPCS,CBF,WordPress 路径
  • 允许禁用 Mozart 集成
  • 自动处理排除列表中的 vendor-name/project 文件夹,但包括该文件夹并排除其 src 文件夹。
  • 应是一个脚本,并根据配置条件运行部分。
  • 考虑 geecu/phpstorm-configurator

参见

致谢

我正在等待MacOS Catalina下载和安装。我从阅读kporras07/composer-symlinks中学习了如何编写Composer扩展。