7

After upgrade to php8 I have a problem with php-cs-fixer which I installed globally via composer. Right now I can not use php-cs-fixer because every time I get:

PHP needs to be a minimum version of PHP 5.6.0 and maximum version of PHP 7.4.*.
To ignore this requirement please set `PHP_CS_FIXER_IGNORE_ENV`.

For php upgrade and usage different version of php I use https://github.com/shivammathur/homebrew-php

For previous version of php (7.4) everything works fine.

IMSoP
  • 89,526
  • 13
  • 117
  • 169
knubbe
  • 1,132
  • 2
  • 12
  • 21
  • PHP 8 has been out for less than two months; it's going to take a while for all the tools you use to be ready for it! – IMSoP Jan 18 '21 at 18:31
  • I got a similar issue today because current version of cs fixer (3.14.4) does not support php above 8.1 (for a good reason actually https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6787 ) but using PHP_CS_FIXER_IGNORE_ENV works (I guess it would fail if you use it on a file with specific 8.2 syntax) – valepu Mar 07 '23 at 09:44

4 Answers4

8

The first version of php-cs-fixer to support PHP 8 was Version 2.18 released on 18th Jan 2021.

IMSoP
  • 89,526
  • 13
  • 117
  • 169
knubbe
  • 1,132
  • 2
  • 12
  • 21
5

https://cs.symfony.com/doc/usage.html#environment-options

PHP_CS_FIXER_IGNORE_ENV=1 php php-cs-fixer.phar fix /path/to/dir

FulgerX2007
  • 51
  • 1
  • 3
0

The PHP_CS_FIXER_IGNORE_ENV environment variable can be used to ignore any environment requirements. This includes requirements like missing PHP extensions, unsupported PHP versions or by using HHVM.

NOTE: Execution may be unstable when used.

PHP_CS_FIXER_IGNORE_ENV=1 php php-cs-fixer.phar fix /path/to/dir

Exit code of the fix command is built using following bit flags:

0 - OK.

1 - General error (or PHP minimal requirement not matched).

4 - Some files have invalid syntax (only in dry-run mode).

8 - Some files need fixing (only in dry-run mode).

16 - Configuration error of the application.

32 - Configuration error of a Fixer.

64 - Exception raised within the application.

-3

In the file: ./vendor/bin/php-cs-fixer

Remove the code below (starting at line 26):

elseif (!defined('PHP_VERSION_ID') || \PHP_VERSION_ID < 50600 || \PHP_VERSION_ID >= 70500) {
    fwrite(STDERR, "PHP needs to be a minimum version of PHP 5.6.0 and maximum version of PHP 7.4.*.\n");

    if (getenv('PHP_CS_FIXER_IGNORE_ENV')) {
        fwrite(STDERR, "Ignoring environment requirements because `PHP_CS_FIXER_IGNORE_ENV` is set. Execution may be unstable.\n");
    } else {
        exit(1);
    }
}

It's a quick fix, but it will get you back up and running.

Majid
  • 383
  • 1
  • 3
  • 8