ramsey / devtools
一个Composer插件,用于辅助PHP库和应用开发。
Requires
- php: ^8.1
- composer-plugin-api: ^2.3
- captainhook/captainhook: ^5.15
- captainhook/plugin-composer: ^5.3
- ergebnis/composer-normalize: ^2.30
- madewithlove/license-checker: ^1.4
- pds/skeleton: ^1.0
- phly/keep-a-changelog: ^2.12
- php-parallel-lint/php-console-highlighter: ^1.0
- php-parallel-lint/php-parallel-lint: ^1.3
- phpstan/extension-installer: ^1.2
- phpstan/phpstan: ^1.10
- phpstan/phpstan-mockery: ^1.1
- phpstan/phpstan-phpunit: ^1.3
- phpunit/phpunit: ^10.1
- psalm/plugin-mockery: ^1.1
- psalm/plugin-phpunit: ^0.18.4
- ramsey/coding-standard: ^2.2
- ramsey/composer-repl: ^1.5
- ramsey/conventional-commits: ^1.5
- ramsey/devtools-lib: ^2.0
- roave/security-advisories: dev-latest
- vimeo/psalm: ^5.8
README
一个Composer插件,用于辅助PHP库和应用开发。
关于
我创建了这个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.json
的 extra
部分的 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:all
或 composer 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。