PSR 12 - Extended Coding Style Guide

1 h Niveau 4

L’objectif du PSR 12 est d’étendre et remplacer le PSR 2, le guide de style de codage exige le respect du PSR 1, la norme de codage de base. Comme le PSR 2, cette spécification permet de réduire les frictions cognitives lors de la numérisation du code de différents auteurs. Le PSR 12 vise à fournir une manière définie que les outils de style de codage peuvent mettre en œuvre, les projets peuvent déclarer leur adhésion et les développeurs peuvent facilement s’identifier entre différents projets. Lorsque plusieurs développeurs collaborent sur plusieurs projets, il est utile de définir un ensemble de directives à utiliser pour ces projets. Ainsi, l'intérêt de ce PSR n’est pas dans les règles de style, mais dans le partage de ces règles.

En résumé, le PSR 12 cherche à clarifier le contenu du PSR 2 dans un contexte plus moderne avec de nouvelles fonctionnalités disponibles.

Exemple :

<?php

declare(strict_types=1);

namespace Vendor\Package;

use Vendor\Package\{ClassA as A, ClassB, ClassC as C};
use Vendor\Package\SomeNamespace\ClassD as D;

use function Vendor\Package\{functionA, functionB, functionC};

use const Vendor\Package\{ConstantA, ConstantB, ConstantC};

class Foo extends Bar implements FooInterface
{
    public function sampleFunction(int $a, int $b = null): array
    {
        if ($a === $b) {
            bar();
        } elseif ($a > $b) {
            $foo->bar($arg1);
        } else {
            BazClass::bar($arg2, $arg3);
        }
    }

    final public static function bar()
    {
        // méthode
    }
}
?>

Norme de codage de base

Le code doit suivre les règles décrites dans le PSR-1. Le terme “StudlyCaps” dans le PSR-1 doit être interprété comme PascalCase où la première lettre de chaque mot est en majuscule. y compris la toute première lettre

Les fichiers

Tous les fichiers en PHP doivent utiliser uniquement la fin de ligne Unix LF (linefeed). Tous les fichiers PHP doivent se terminer par une ligne non vide, terminée par un seul LF. La balise ?> de fermeture doit être omise des fichiers contenant seulement du PHP.

Les Lignes

logo discord

Besoin d'aide ?

Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !

En savoir plus