php-cs-fixer 在 php 7.3 更新后停止工作
php-cs-fixer stopped working after php 7.3 update
我正在使用 Homebrew 来管理它们,它们都是最新的。
~ $ brew --version
Homebrew 1.8.4
Homebrew/homebrew-core (git revision a166; last commit 2018-12-08)
~ $ php --version
PHP 7.3.0 (cli) (built: Dec 7 2018 11:00:11) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.0, Copyright (c) 1999-2018, by Zend Technologies
~ $ php-cs-fixer --version
PHP needs to be a minimum version of PHP 5.6.0 and maximum version of PHP 7.2.*.
~ $ brew upgrade php-cs-fixer
Error: php-cs-fixer 2.13.1 already installed
当我尝试使用 php-cs-fixer
时会发生这种情况
~ $ php-cs-fixer fix file.php
PHP needs to be a minimum version of PHP 5.6.0 and maximum version of PHP 7.2.*.
所以,我下载了 php@7.2 和 php-cs-fixer.phar 进行测试,它是这样工作的。
~ $ /usr/local/Cellar/php@7.2/7.2.13/bin/php /Users/aaronk/php-cs-fixer.phar fix file.php
Loaded config default from "/Users/aaronk/.php_cs".
Using cache file ".php_cs.cache".
Paths from configuration file have been overridden by paths provided as command arguments.
1) file.php
Fixed all files in 0.014 seconds, 10.000 MB memory used
~ $
所以我的问题是,如何让自制程序的 php-cs-fixer 工作?
homebrew 是不是哪里做错了?
(p.s。是否有 php7.3)
的标签
与 Homebrew 无关。是php-cs-fixer
本身不支持PHP7.3。您会通过 composer
遇到相同的问题,但依赖项未满足。
正如 godbout 所说,PHP-CS-Fixer 不支持 PHP 7.3。您可以跟踪 GitHub 问题 [Meta] PHP 7.3 support #3697,以了解事态的发展。根据这个问题,PHP 7.3 中的以下变化仍然需要解决:
- Flexible Heredoc and Nowdoc Syntaxes
- list() Reference Assignment
- instanceof now allows literals as the first operand, in which case the result is always false.
- Allow a trailing comma in function calls
- hrtime function has been added
- is_countable function shall be handled as all other native functions
mentioned issues 与 PH PC Fixer 代码无关,而是与其功能相关。很明显误用了 composer.json
,其中是依赖项,而不是功能。
PHP CS Fixer 在 PHP 7.3 上运行良好,参见 this PR。
此命令允许您在 PHP 7.3:
上安装它
composer update --ignore-platform-reqs
如果您遇到任何问题,请告诉我。
澄清 - PHP CS Fixer 在 PHP 7.3 下 运行 可能会修复使用高达 PHP 7.2 的语法编写的代码。但是,如果有人将 运行 工具用于 7.3 中编写的代码,例如 is_null($foo, )
(尾随逗号),则修复程序的行为不稳定(生成 null === $foo,
- 仍然带有尾随逗号),这是个问题。
当前版本 "friendsofphp/php-cs-fixer": "^2.14"
现在支持 php 7.3。你可以升级它,它应该可以正常工作。
我正在使用 Homebrew 来管理它们,它们都是最新的。
~ $ brew --version
Homebrew 1.8.4
Homebrew/homebrew-core (git revision a166; last commit 2018-12-08)
~ $ php --version
PHP 7.3.0 (cli) (built: Dec 7 2018 11:00:11) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.0, Copyright (c) 1999-2018, by Zend Technologies
~ $ php-cs-fixer --version
PHP needs to be a minimum version of PHP 5.6.0 and maximum version of PHP 7.2.*.
~ $ brew upgrade php-cs-fixer
Error: php-cs-fixer 2.13.1 already installed
当我尝试使用 php-cs-fixer
时会发生这种情况~ $ php-cs-fixer fix file.php
PHP needs to be a minimum version of PHP 5.6.0 and maximum version of PHP 7.2.*.
所以,我下载了 php@7.2 和 php-cs-fixer.phar 进行测试,它是这样工作的。
~ $ /usr/local/Cellar/php@7.2/7.2.13/bin/php /Users/aaronk/php-cs-fixer.phar fix file.php
Loaded config default from "/Users/aaronk/.php_cs".
Using cache file ".php_cs.cache".
Paths from configuration file have been overridden by paths provided as command arguments.
1) file.php
Fixed all files in 0.014 seconds, 10.000 MB memory used
~ $
所以我的问题是,如何让自制程序的 php-cs-fixer 工作? homebrew 是不是哪里做错了?
(p.s。是否有 php7.3)
的标签与 Homebrew 无关。是php-cs-fixer
本身不支持PHP7.3。您会通过 composer
遇到相同的问题,但依赖项未满足。
正如 godbout 所说,PHP-CS-Fixer 不支持 PHP 7.3。您可以跟踪 GitHub 问题 [Meta] PHP 7.3 support #3697,以了解事态的发展。根据这个问题,PHP 7.3 中的以下变化仍然需要解决:
- Flexible Heredoc and Nowdoc Syntaxes
- list() Reference Assignment
- instanceof now allows literals as the first operand, in which case the result is always false.
- Allow a trailing comma in function calls
- hrtime function has been added
- is_countable function shall be handled as all other native functions
mentioned issues 与 PH PC Fixer 代码无关,而是与其功能相关。很明显误用了 composer.json
,其中是依赖项,而不是功能。
PHP CS Fixer 在 PHP 7.3 上运行良好,参见 this PR。
此命令允许您在 PHP 7.3:
上安装它composer update --ignore-platform-reqs
如果您遇到任何问题,请告诉我。
澄清 - PHP CS Fixer 在 PHP 7.3 下 运行 可能会修复使用高达 PHP 7.2 的语法编写的代码。但是,如果有人将 运行 工具用于 7.3 中编写的代码,例如 is_null($foo, )
(尾随逗号),则修复程序的行为不稳定(生成 null === $foo,
- 仍然带有尾随逗号),这是个问题。
当前版本 "friendsofphp/php-cs-fixer": "^2.14"
现在支持 php 7.3。你可以升级它,它应该可以正常工作。