ramsey/devtools

一个Composer插件,用于辅助PHP库和应用开发。

资助包维护!
ramsey

安装次数: 27 719

依赖者: 34

建议者: 0

安全性: 0

星标: 66

关注者: 6

分支: 2

公开问题: 0

类型:composer-plugin

2.0.0 2023-04-24 23:05 UTC

This package is auto-updated.

Last update: 2024-08-27 23:57:14 UTC


README

一个Composer插件,用于辅助PHP库和应用开发。

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

关于

我创建了这个Composer插件,因为我厌倦了在我的存储库中对开发工具和脚本进行更改,却发现我非常喜欢这个更改,现在我需要将它应用到所有的存储库中。这是一项旨在整合和简化的努力。

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

也许这些工具非常有帮助,但你有不同的需求。这也没关系。你可以创建自己的devtools,需要ramsey/devtools-lib(该插件背后的库代码),来扩展和添加这些工具,创建自己的Composer插件。

当然,如果你想帮助改进这些工具,我欢迎你的贡献。请随意打开问题,询问或请求功能,提交PR。我迫不及待地想看看你将拿出什么。

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

安装

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

composer require --dev ramsey/devtools

用法

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

composer list

添加命令前缀

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

{
    "extra": {
        "ramsey/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通过命令前缀列出命令。

扩展或重写 ramsey/devtools 命令

可能 ramsey/devtools 提供的命令并不能满足你的所有需求,或者你可能想完全替换它们。配置允许你这样做!

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

指定附加脚本的方式与在 composer.json编写自定义命令的方式完全相同,但位置不同。你可以在这里做任何与自定义Composer命令一样的事情,因为它们是同一样东西。

{
    "extra": {
        "ramsey/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": {
        "ramsey/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 以获取提交漏洞报告的说明。

版权和许可证

ramsey/devtools 库版权所有 © Ben Ramsey,并许可在 MIT 许可证(MIT)的条款下使用。有关更多信息,请参阅 LICENSE