我可以将 CodeSniffer 标准指定为开发作曲家依赖项吗?
Can I specify a CodeSniffer standard as a dev composer dependency?
假设我有两个或三个项目,它们都使用不同的 PHP CodeSniffer 标准(定制)。
我希望能够将它们作为 require-dev
依赖项包含在 Composer 中,这样当启动项目存储库时,它们将与 PHPUnit 和我的其他开发要求一起安装.
目前我的机器的全局 phpcs
标准文件夹中有所有标准,我通过项目根目录中的 phpcs.xml
配置文件告诉每个项目使用哪个标准。
我可以指定标准的路径,以便它可以通过 composer 安装和使用吗?
您可以为 phpcs
指定一个额外的路径来寻找使用 installed_paths
setting 的标准。这是一个示例 phpcs.xml
配置:
<?xml verison="1.0"?>
<ruleset name="MyProject">
<description>My cool project, using a custom PHPCS standard</description>
<rule ref="MyCoolStandard" />
<config name="installed_paths" value="vendor/myvendorhere" />
</ruleset>
然后假设您的自定义 PHPCS 标准具有如下文件结构:
+ MyCoolStandard
- Sniffs
- Classes
- MyClassSniff.php
- ruleset.xml
您可以向其中添加一个基本 composer.json
文件并为其命名。这里的一个重要部分是您需要告诉它安装到 与标准名称 匹配的路径 - 或者更简单地 将包命名为您的标准 (注意:需要匹配标准中的ruleset.xml
,包括大小写):
{
"name": "myvendorhere/MyCoolStandard",
"description": "My cool PHPCS standard",
"require": {}
}
现在您可以将它作为 VCS 存储库包含在您的项目中:
# Project: composer.json
...
"repositories": [
{
"type": "vcs",
"url": "git@github.com:myvendorhere/myreponame.git"
}
],
"require-dev": {
"myvendorhere/MyCoolStandard": "dev-master"
}
...
长话短说:
- 使用
installed_paths
CodeSniffer 配置设置指定作曲家的供应商路径(直到以您的标准命名的文件夹)作为标准路径
- 在您的标准存储库中,以标准命名作曲包(区分大小写)。它必须与您在
ruleset.xml
中使用的名称相同,以便 phpcs
可以找到它,否则您会收到错误提示找不到它。
- 将您的自定义标准作为 a VCS repo 包含在项目的作曲家配置中(或更好的方式...!)
假设我有两个或三个项目,它们都使用不同的 PHP CodeSniffer 标准(定制)。
我希望能够将它们作为 require-dev
依赖项包含在 Composer 中,这样当启动项目存储库时,它们将与 PHPUnit 和我的其他开发要求一起安装.
目前我的机器的全局 phpcs
标准文件夹中有所有标准,我通过项目根目录中的 phpcs.xml
配置文件告诉每个项目使用哪个标准。
我可以指定标准的路径,以便它可以通过 composer 安装和使用吗?
您可以为 phpcs
指定一个额外的路径来寻找使用 installed_paths
setting 的标准。这是一个示例 phpcs.xml
配置:
<?xml verison="1.0"?>
<ruleset name="MyProject">
<description>My cool project, using a custom PHPCS standard</description>
<rule ref="MyCoolStandard" />
<config name="installed_paths" value="vendor/myvendorhere" />
</ruleset>
然后假设您的自定义 PHPCS 标准具有如下文件结构:
+ MyCoolStandard - Sniffs - Classes - MyClassSniff.php - ruleset.xml
您可以向其中添加一个基本 composer.json
文件并为其命名。这里的一个重要部分是您需要告诉它安装到 与标准名称 匹配的路径 - 或者更简单地 将包命名为您的标准 (注意:需要匹配标准中的ruleset.xml
,包括大小写):
{
"name": "myvendorhere/MyCoolStandard",
"description": "My cool PHPCS standard",
"require": {}
}
现在您可以将它作为 VCS 存储库包含在您的项目中:
# Project: composer.json
...
"repositories": [
{
"type": "vcs",
"url": "git@github.com:myvendorhere/myreponame.git"
}
],
"require-dev": {
"myvendorhere/MyCoolStandard": "dev-master"
}
...
长话短说:
- 使用
installed_paths
CodeSniffer 配置设置指定作曲家的供应商路径(直到以您的标准命名的文件夹)作为标准路径 - 在您的标准存储库中,以标准命名作曲包(区分大小写)。它必须与您在
ruleset.xml
中使用的名称相同,以便phpcs
可以找到它,否则您会收到错误提示找不到它。 - 将您的自定义标准作为 a VCS repo 包含在项目的作曲家配置中(或更好的方式...!)