Il PSR (PHP Standards Recommendation) è un insieme di raccomandazioni e linee guida per standardizzare il codice scritto in PHP, al fine di migliorare la coerenza e la qualità complessiva del codice stesso. Questo insieme di standard viene pubblicato dal PHP-FIG (PHP Framework Interoperability Group), un gruppo di lavoro composto dai rappresentanti di diversi framework e librerie PHP, come Symfony, Zend Framework, e Laravel.
1. PSR-1: Basic Coding Standard Stabilisce delle linee guida di base per il linguaggio PHP tra cui il formato dei file, la dichiarazione di namespace e use, e le convenzioni per le costanti e le variabili.
1. PSR-2: Coding Style Guide Estende PSR-1 con delle regole più dettagliate su come strutturare il codice, ad esempio l’indentazione, la lunghezza di una riga di codice, l’uso delle spaziature e la definizione dei metodi.
1. PSR-3: Logger Interface Definisce un’interfaccia comune per i logger in PHP, permettendo agli sviluppatori di intercambiare facilmente le librerie di logging.
1. PSR-4: Autoloading Standard Specchia le specifiche per l’autoloading delle classi, permettendo di caricare automaticamente le classi PHP per evitare di includere manualmente i file.
1. PSR-12: Extended Coding Style Guide Un’estensione di PSR-2 che include ulteriori linee guida per i namespace, le importazioni e la formattazione del codice.
```
// Esempio di autoloading conforme a PSR-4:
namespace App\Utils;
class StringUtils
{
public static function toUpperCase($string)
{
return strtoupper($string);
}
}
// Non è necessario includere manualmente il file della classe. Verrà caricato automaticamente.
$string = StringUtils::toUpperCase(‘hello world’);
echo $string; // Output: HELLO WORLD
```
In conclusione, il PSR rappresenta un tentativo concertato di ridurre le differenze di stile e struttura del codice nei vari progetti PHP, rendendo il codice più prevedibile e più facile da mantenere. Seguendo queste raccomandazioni, gli sviluppatori possono migliorare l’interoperabilità dei loro progetti e facilitare la collaborazione all’interno della comunità PHP.