我正在使用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工作? 自制酒在这里做错了吗?
(p.s。是否有php7.3的标记)
答案 0 :(得分:2)
正如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现在允许将文字作为第一个操作数,在这种情况下,结果始终为false。
- Allow a trailing comma in function calls
- hrtime function has been added
- is_countable函数应与所有其他本机函数一样处理
答案 1 :(得分:0)
与Homebrew无关。 php-cs-fixer
本身不支持PHP7.3。您将通过composer
遇到相同的问题,但依赖关系未得到满足。
答案 2 :(得分:0)
mentioned issues与PH PC Fixer代码无关,而与它的功能有关。显然是composer.json
的误用,那里是依赖项,而不是功能。
PHP CS Fixer在PHP 7.3上运行良好,请参见this PR。
此命令允许您将其安装在PHP 7.3上:
composer update --ignore-platform-reqs
如果您遇到任何麻烦,请告诉我。
答案 3 :(得分:0)
为了澄清-在PHP 7.3下运行的PHP CS Fixer可能会修复使用PHP 7.2之前的语法编写的代码。但是,如果要在用7.3编写的代码上运行工具,例如is_null($foo, )
(后跟逗号),则修复程序的行为将不稳定(产生null === $foo,
-仍然带有后缀逗号),这是一个问题。
答案 4 :(得分:0)
当前版本"friendsofphp/php-cs-fixer": "^2.14"
现在支持php 7.3。您可以对其进行升级,并且应该可以正常工作。