J'utilise Homebrew pour gérer les deux et ils sont à jour.
~ $ 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
Cela se produit lorsque j'essaie d'utiliser 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.*.
Donc, j'ai téléchargé [email protected] et php-cs-fixer.phar à tester et cela fonctionne ainsi.
~ $ /usr/local/Cellar/[email protected]/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
~ $
Ma question est donc la suivante: comment faire fonctionner le fixateur php-cs de homebrew?
(p.s. existe-t-il une balise pour php7.3)
Comme dit godbout, PHP-CS-Fixer ne supporte pas PHP 7.3. Vous pouvez suivre le problème GitHub [Meta] PHP 7.3 support # 3697 , pour suivre l’évolution de la situation. Selon ce problème, les modifications suivantes dans PHP 7.3 doivent encore être prises en compte:
- Syntaxes flexibles Heredoc et Nowdoc
- list () Assignation de référence
- instanceof autorise désormais les littéraux en tant que premier opérande, auquel cas le résultat est toujours faux.
- Autorise une virgule de fin dans les appels de fonction
- La fonction hrtime a été ajoutée
- la fonction is_countable doit être traitée comme toutes les autres fonctions natives
Les problèmes mentionnés } ne sont pas liés au code PH PC Fixer, mais à ses fonctionnalités. Il est clair que misscode composer.json
est utilisé, où sont des dépendances et non des fonctionnalités.
PHP CS Fixer fonctionne bien sur PHP 7.3, voir ce PR .
Cette commande vous permet de l'installer sur PHP 7.3:
composer update --ignore-platform-reqs
Faites-moi savoir si vous rencontrez des problèmes.
Pour clarifier - PHP CS Fixer exécuté sous PHP 7.3 peut corriger le code écrit en utilisant la syntaxe jusqu'à PHP 7.2. Mais si vous exécutez un outil sur un code écrit en 7.3, par exemple is_null($foo, )
(virgule de fin), le comportement du fixateur n’est pas stable (produisant null === $foo,
- avec toujours une virgule de fin), ce qui pose problème.
La version actuelle "friendsofphp/php-cs-fixer": "^2.14"
supporte maintenant php 7.3. Vous pouvez le mettre à niveau et cela devrait fonctionner correctement.
Rien à voir avec Homebrew. C'est php-cs-fixer
lui-même qui ne supporte pas PHP 7.3. Vous obtiendrez le même problème avec composer
, avec des dépendances non résolues.