Up master en PHP 8.0 minimum #5526

Open
marcimat wants to merge 28 commits from up_php_min into master
marcimat commented 6 days ago
Owner

Avec une passe de Rector dessus, qui remplace dans le même temps tous les and et or par des && et || ce qui n’est pas sans poser de petits problèmes parfois, car dans SPIP y a la «bonne» idée de faire aussi des affectations dans les if (...). Et Rector a parfois du mal à comprendre qu’il faut parenthéser : j’ai du repasser derrière lui quelques fois.

J’espère que j’en ai pas oublié

Avec une passe de Rector dessus, qui remplace dans le même temps tous les `and` et `or` par des `&&` et `||` ce qui n’est pas sans poser de petits problèmes parfois, car dans SPIP y a la «bonne» idée de faire aussi des affectations dans les `if (...)`. Et Rector a parfois du mal à comprendre qu’il faut parenthéser : j’ai du repasser derrière lui quelques fois. J’espère que j’en ai pas oublié
marcimat added 21 commits 6 days ago
077634e329 chore: Rector up to 8.0 sur ecrire/action
1fbfb411e9 chore: Rector up to PHP 8.0 sur ecrire/balise
Owner

Mais on peut pas désactiver le remplacement des and et or là ? Parce que c'est quand même beaucoup plus lisibles et c'est ça qu'on utilise depuis toujours partout

Mais on peut pas désactiver le remplacement des and et or là ? Parce que c'est quand même beaucoup plus lisibles et c'est ça qu'on utilise depuis toujours partout
marcimat added 1 commit 6 days ago
Poster
Owner

Mais on peut pas désactiver le remplacement des and et or là ? Parce que c'est quand même beaucoup plus lisibles et c'est ça qu'on utilise depuis toujours partout

Alors si… mais

  1. c’est pas forcément plus lisible ; question d’habitude
  2. c’est dans les CS de Symfony
  3. c’est ce que propose Rector par défaut avec la règle SetList::CODE_QUALITY
  4. c’est à peu près ce qu’utilise du coup les libs PHP partout

Par ailleurs je précise que j’ai aussi du passer du temps à reprendre certaines des modifications de Rector à causes des tabulations qu’on utilise…

C’est chiant de pas être dans les standards, ça fait perdre du temps.

> Mais on peut pas désactiver le remplacement des and et or là ? Parce que c'est quand même beaucoup plus lisibles et c'est ça qu'on utilise depuis toujours partout Alors si… mais 1) c’est pas forcément plus lisible ; question d’habitude 2) c’est dans les CS de Symfony 3) c’est ce que propose Rector par défaut avec la règle `SetList::CODE_QUALITY` 4) c’est à peu près ce qu’utilise du coup les libs PHP partout Par ailleurs je précise que j’ai aussi du passer du temps à reprendre certaines des modifications de Rector à causes des tabulations qu’on utilise… C’est chiant de pas être dans les standards, ça fait perdre du temps.
marcimat added 4 commits 6 days ago
marcimat added 1 commit 6 days ago
marcimat added 1 commit 5 days ago
b_b commented 5 days ago
Owner

Héhé, je posais jsutement la question dans spip-contrib-extensions/crayons#15 et ok, ça me va, je vais m'adapter au && ||.

Pour l'instant ma conf rector est la suivante :

<?php

use Rector\Config\RectorConfig;
use Rector\Php74\Rector\Property\TypedPropertyRector;
use Rector\Set\ValueObject\SetList;
use Rector\Set\ValueObject\LevelSetList;

return static function (RectorConfig $rectorConfig): void {
    $rectorConfig->sets([
        LevelSetList::UP_TO_PHP_74,
    ]);
    $rectorConfig->skip([
        '**/lang/*',
        '**/lib/*',
    ]);
};

Faut juste y ajouter SetList::CODE_QUALITY et zou ? D'ailleurs, ça serait pas mal qu'on se partage une conf "officielle" pour SPIP, non ?

Héhé, je posais jsutement la question dans https://git.spip.net/spip-contrib-extensions/crayons/pulls/15#issuecomment-48312 et ok, ça me va, je vais m'adapter au && ||. Pour l'instant ma conf rector est la suivante : ```php <?php use Rector\Config\RectorConfig; use Rector\Php74\Rector\Property\TypedPropertyRector; use Rector\Set\ValueObject\SetList; use Rector\Set\ValueObject\LevelSetList; return static function (RectorConfig $rectorConfig): void { $rectorConfig->sets([ LevelSetList::UP_TO_PHP_74, ]); $rectorConfig->skip([ '**/lang/*', '**/lib/*', ]); }; ``` Faut juste y ajouter `SetList::CODE_QUALITY` et zou ? D'ailleurs, ça serait pas mal qu'on se partage une conf "officielle" pour SPIP, non ?
Poster
Owner

Sur Entravaux j’avais par exemple (pareil sur Crayons)


	$rectorConfig->phpVersion(PhpVersion::PHP_74);

	$rectorConfig->sets([
        SetList::CODE_QUALITY,
		LevelSetList::UP_TO_PHP_74
    ]);

	$rectorConfig->skip([
		ReturnTypeFromStrictScalarReturnExprRector::class,
		UnionTypesRector::class,
		ExplicitBoolCompareRector::class,
		ShortenElseIfRector::class,

        __DIR__ . '/lang',
        __DIR__ . '/ecrire/lang',
        __DIR__ . '/lib',
        __DIR__ . '/vendor',
    ]);

J’en exclus quelques uns qui jouent avec les types dans le doute…

Sur Entravaux j’avais par exemple (pareil sur Crayons) ```php $rectorConfig->phpVersion(PhpVersion::PHP_74); $rectorConfig->sets([ SetList::CODE_QUALITY, LevelSetList::UP_TO_PHP_74 ]); $rectorConfig->skip([ ReturnTypeFromStrictScalarReturnExprRector::class, UnionTypesRector::class, ExplicitBoolCompareRector::class, ShortenElseIfRector::class, __DIR__ . '/lang', __DIR__ . '/ecrire/lang', __DIR__ . '/lib', __DIR__ . '/vendor', ]); ``` J’en exclus quelques uns qui jouent avec les types dans le doute…
Collaborator

D'ailleurs, ça serait pas mal qu'on se partage une conf "officielle" pour SPIP, non ?

je trouve une bonne idée d'avoir une conf SPIP de Rector (en y ajoutant les espaces au lieu des tab ;-) )

> D'ailleurs, ça serait pas mal qu'on se partage une conf "officielle" pour SPIP, non ? je trouve une bonne idée d'avoir une conf SPIP de Rector (en y ajoutant les espaces au lieu des tab ;-) )
Owner

J'approuve tout ça, mais quid des plugins contrib ?

Faudra t'il gérer deux configs coding standards (dist // contrib), ou avoir deux configs selon les versions / compat des plugins contrib ?

J'approuve tout ça, mais quid des plugins contrib ? Faudra t'il gérer deux configs coding standards (dist // contrib), ou avoir deux configs selon les versions / compat des plugins contrib ?
This pull request can be merged automatically.
You are not authorized to merge this pull request.
Sign in to join this conversation.
Loading…
There is no content yet.