PHP: conflitto di stile del codice prima della virgola con PSR2?

0

Ho uno sviluppatore che vuole usare stile di codice virgola-primo in una base di codice PHP per rendere più facile il commento fuori variabili senza dover spostare la virgola intorno.

PHPStorm, configurato per conformarsi allo standard PSR-2 , riformatta automaticamente il seguente codice:

<?php

$example = new Triceratops([
     'option1' => 'green'
   , 'option2' => 'purple'
   , 'option3' => 'orange' 
   , 'option4' => 'yellow' 
   , 'option5' => $userSubmittedColor 
   , 'option6' => 'cyan' 
]);

a questo:

<?php

$example = new Triceratops([
    'option1' => 'green'
    ,
    'option2' => 'purple'
    ,
    'option3' => 'orange'
    ,
    'option4' => 'yellow'
    ,
    'option5' => $userSubmittedColor
    ,
    'option6' => 'cyan'
]);

Google restituisce molti riferimenti alla "codifica virgola-prima su javascript, ma non ho trovato nulla sull'utilizzo in PHP.

Il codice comma-first è in conflitto con PSR-2? In caso contrario, come si configura PhpStorm per usarlo, o sarebbe considerato un bug?

    
posta Menasheh 20.03.2018 - 19:38
fonte

1 risposta

2

Non riesco a trovare nulla in PSR-2 che ciò violerebbe in modo specifico.

In PHP, non importa se l'ultimo elemento di un array contiene una virgola finale sull'ultimo elemento o meno, e in effetti molti preferiscono aggiungerlo in ogni caso poiché è un carattere in meno da digitare quando devi torna indietro e aggiungi un altro elemento più tardi. Ho visto lo stesso stile suggerito dal collaboratore in altri linguaggi poiché non consente l'ultima virgola finale, ma in PHP non è necessario.

Trovo anche che lo stile lo rende un po 'più difficile da leggere, ma dal momento che la PSR-2 non specifica una preferenza direttamente, a ciascuno di essi.

NB- Ci sono altri gruppi che hanno esteso gli standard PSR-2 che menzionano questo, ma per ora non sono stati accettati da PHP-FIG. Per esempio. da qui Trovo un po 'una contraddizione:

Multi-line declaration/condition/concatenation
All operators should go in the newline as first character:
$foo = 'Some String' . ' concatenated';

[...]

Multi-line arrays
Arrays that span across multiple lines can have a trailing comma to make sure that adding new rows does not change the previous row, as well.

$array = [ 'first', 'second', // Note the trailing comma ];

Questo stile di codifica potrebbe essere interpretato in base alle tue preferenze o ai tuoi colleghi di lavoro, ma non è in alcun modo normativo.

    
risposta data 20.03.2018 - 20:30
fonte

Leggi altre domande sui tag