chiron/devtools

一个用于协助PHP库和应用程序开发的Composer插件。

维护者

详细信息

github.com/ncou/devtools

源代码

问题

资助包维护!
ncou

安装次数: 4,736

依赖者: 14

建议者: 0

安全性: 0

星标: 0

关注者: 1

分支: 0

开放问题: 7

类型:composer-plugin


README

一个用于协助PHP库和应用程序开发的Composer插件。

Source Code Download Package Read License Build Status Codecov Code Coverage Psalm Type Coverage

关于

这个包的构想在于整合并简化我在所有仓库中使用开发工具和脚本的流程。

这些工具可能不适合你,没关系。

也许这些工具非常有帮助,但你有不同的需求。没关系。你可以进行分支并修改,创建你自己的Composer插件。

当然,如果你想帮助改进这些工具,我欢迎你的贡献。欢迎你提交问题、询问或请求功能,并提交PR。我迫不及待想看看你有什么想法。

本项目遵循行为准则。参与本项目及其社区,你应遵守此准则。

要求

  • PHP 8.0 或 8.1

安装

使用 Composer 将此包安装为开发依赖。

composer require --dev chiron/devtools

使用方法

此包是一个Composer插件。这意味着Composer会识别它为你提供自定义功能。安装后,输入 composer list,你将看到这个插件提供的大量新命令。

composer list

添加命令前缀

此插件提供的命令与Composer的其他命令混合在一起,因此可能难以找到所有命令。不过,我们可以通过命令命名空间进行分组。打开 composer.json 并在 extra 部分添加一个 chiron/devtools.command-prefix 属性。你可以使用任何你想要的命名前缀。

{
    "extra": {
        "chiron/devtools": {
            "command-prefix": "my-prefix"
        }
    }
}

现在,当你输入 composer list(或仅输入 composer)时,你会看到一个看起来像这样的命令部分

 my-prefix
  my-prefix:analyze:all           Runs all static analysis checks.
  my-prefix:analyze:phpstan       Runs the PHPStan static analyzer.
  my-prefix:analyze:psalm         Runs the Psalm static analyzer.
  my-prefix:build:clean           Cleans the build/ directory.
  my-prefix:build:clean:all       Cleans the build/ directory.
  my-prefix:build:clean:cache     Cleans the build/cache/ directory.
  my-prefix:build:clean:coverage  Cleans the build/coverage/ directory.
  my-prefix:changelog             Support for working with Keep A Changelog.
  my-prefix:license               Checks dependency licenses.
  my-prefix:lint:all              Runs all linting checks.
  my-prefix:lint:fix              Auto-fixes coding standards issues, if possible.
  my-prefix:lint:pds              Validates project compliance with pds/skeleton.
  my-prefix:lint:style            Checks for coding standards issues.
  my-prefix:lint:syntax           Checks for syntax errors.
  my-prefix:test:all              Runs linting, static analysis, and unit tests.
  my-prefix:test:coverage:ci      Runs unit tests and generates CI coverage reports.
  my-prefix:test:coverage:html    Runs unit tests and generates HTML coverage report.
  my-prefix:test:unit             Runs unit tests.

你还可以使用 composer list my-prefix 来通过命令前缀列出命令。

扩展或覆盖 chiron/devtools 命令

也许 chiron/devtools 提供的命令没有做你需要的所有事情,或者你可能想完全替换它们。配置允许你这样做!

composer.jsonextra 部分使用 chiron/devtools.commands 属性,你可以指定任何命令(如果没有配置自定义前缀,则无需指定) 以运行其他脚本,除了命令的默认行为外,或者你可以完全覆盖默认行为。

指定附加脚本的方式与在 composer.json编写自定义命令的方式相同,但位置不同。你可以使用自定义Composer命令执行的所有操作,在这里也可以执行,因为它们是同一件事。

{
    "extra": {
        "chiron/devtools": {
            "command-prefix": "my-prefix",
            "commands": {
                "lint:all": {
                    "script": "@mylint"
                },
                "test:all": {
                    "script": [
                        "@mylint",
                        "@phpbench"
                    ]
                }
            }
        }
    },
    "scripts": {
        "mylint": "parallel-lint src tests",
        "phpbench": "phpbench run"
    }
}

这样,当你运行 composer my-prefix:lint:allcomposer my-prefix:test:all 时,它将首先执行默认行为,然后运行你的附加命令。要覆盖默认行为,使其完全不运行,只运行你的脚本,指定 override 属性并将其设置为 true

{
    "extra": {
        "chiron/devtools": {
            "commands": {
                "lint:all": {
                    "override": true,
                    "script": "parallel-lint src tests"
                }
            }
        }
    }
}

Composer 命令自动完成

你知道吗,你可以设置你的终端以进行Composer命令自动完成?

如果您想使用 Composer 命令自动完成功能,可以使用 bamarni/symfony-console-autocomplete。使用 Composer 全局安装它。

composer global require bamarni/symfony-console-autocomplete

然后,在您的 shell 配置文件中——通常是 ~/.bash_profile~/.zshrc,但可能根据您的设置有所不同——确保您的全局 Composer bin 目录已添加到您的 PATH 中,并评估 symfony-autocomplete 命令。这看起来会是这样

export PATH="$(composer config home)/vendor/bin:$PATH"
eval "$(symfony-autocomplete)"

现在,您可以使用 tab 键来自动完成 Composer 命令

composer my-prefix:[TAB][TAB]

贡献

欢迎贡献!要贡献,请熟悉 CONTRIBUTING.md

协调披露

确保用户信息的安全和保密是我们的首要任务,我们欢迎外部安全研究人员的贡献。如果您认为您在这个存储库维护的软件中发现了安全漏洞,请阅读 SECURITY.md 了解提交漏洞报告的说明。

鸣谢

此 composer 插件基于 ramsey/devtools-lib 的优秀分支。

许可证

MIT 许可证(MIT)。有关更多信息,请参阅 LICENSE