【问题标题】:PHP CS Fixer order use statements by length in PhpStorm throwing errorPHP CS Fixer 在 PhpStorm 抛出错误中按长度排序使用语句
【发布时间】:2018-10-06 00:26:23
【问题描述】:

所以最近我看到 PHP 社区中的许多开发人员按长度排序他们的使用语句。我一直想知道如何在 PhpStorm 中做到这一点。我想我终于找到了解决方案,但我想我在这里做错了,它不起作用。

因此,名为PHP-CS-Fixer 的工具可以选择执行此操作。而且我知道我可以将这个工具与 PhpStorm 一起使用,使用 Tools -> External Tools 并单击 + 符号然后进行配置。

注意:我使用 Composer 提取工具,就像 composer global require friendsofphp/php-cs-fixer

所以我在 PhpStorm 中的外部工具配置如下:

  • 程序:/Users/rohan0793/.composer/vendor/bin/php-cs-fixer
  • 参数:fix --rules='{"ordered_imports": {"sort_algorithm":"length"}}' $FileDir$/$FileName$
  • 工作目录:$ProjectFileDir$

但是当我运行它时,我看到了这个错误:

The rules contain unknown fixers: "'{ordered_imports{sort_algorithm:length}}'".

所以我想我在配置它时在这里做错了,但似乎无法弄清楚是什么。有人知道吗?

【问题讨论】:

  • 1) 在控制台中手动输入相同的命令是否可以正常执行? 2) 作为外部工具运行时运行的确切命令是什么? 3)论点的顺序? (不太可能,但在他们的示例中是fix filename --rules...) 4)您是否尝试过 alt 选项——通过配置文件?
  • 所以 PHPStorm 正在运行:...fix --rules='{ordered_imports: {sort_algorithm:length}}'... 当我接受整个命令并在终端中运行它时,它给了我 JSON 无效错误,一旦我修复了 JSON 中的引号,它就会运行正好。所以我想我需要告诉 PHPStorm 考虑这些报价,我不知道该怎么做。
  • 仅供参考:intellij-support.jetbrains.com/hc/en-us/community/posts/…。尝试"\",您需要在其中获得"。我的意思是:fix --rules='{"\"ordered_imports"\": {"\"sort_algorithm"\":"\"length"\"}}' $FileDir$/$FileName$
  • 是的,phpstorm 支持也说了同样的话,但是当我尝试这样做时,命令变成了... --rules='{\"ordered_imports\":{\"sort_algorithm\":\"length\"}}' ... 所以当我再次在终端中手动运行这个命令时,仍然是同样的无效 JSON 错误:(
  • 好的。那么"" 呢?除此之外(如果您不希望使用中间 shell 脚本)只需向 Issue Tracker 提交一张新票,提供所有详细信息,以便开发人员/支持人员可以尝试准确复制。

标签: php phpstorm php-cs-fixer


【解决方案1】:

参数看起来有效,如果从 CLI 运行以下命令,它会完美运行,因此确实是将这个配置从 IDE 传递到 CLI。

php-cs-fixer fix --rules='{"ordered_imports": {"sort_algorithm":"length"}}'

让我建议如何以不同的方式做到这一点。 一般来说,最佳实践是将配置放入配置文件,而不是放入 IDE 设置中,因此配置文件可以与存储库一起共享。这里的例子: https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/2.12/.php_cs.dist

另外,您不需要为 PHPStorm 配置外部工具。它现在内置了对 PHP CS Fixer 的支持,请参阅此处的博文:https://blog.jetbrains.com/phpstorm/2018/09/phpstorm-2018-3-early-access-program-is-open/

【讨论】:

    猜你喜欢
    • 2019-06-14
    • 2018-02-11
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 2017-08-08
    相关资源
    最近更新 更多