Pubblicato il Lascia un commento

PSR (PHP Standard Recommendation)

Scopo di PSR (PHP Standard Recommendation), stabilire linee guida, prassi e interfacce, per l’interoperabilità tra differenti framework e librerie.

Sito ufficiale PHP-FIG: http://www.php-fig.org/psr/psr-4/

PSR-4

  • Il termine “classe” si riferisce a classi, interfacce, traits, e altre strutture simili
  • Nome classe “fully qualified”  \<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>  …
    • DEVE avere un nome “top-level namespace” , detto “vendor namespace”
    • PUO’ avere 1+ nomi “sub-namespace”
    • DEVE finire col nome della classe
    • Gli underscores non hanno alcun significato particolare
    • PUO’ avere caratteri alfabetici minuscoli e maiuscoli
    • DEVE avere il nome della classe case-sensitive
  • I FILE
    • una serie continua (sovrapposizione) di namespace principlai, escluso il separatore principale namespace, (“namespace prefix”), corrisponde ad almeno una directory base
    • “sub-namespace” contigui dopo il “namespace prefix” corrispondono ad una sottodirectory all’interno di una “base directory”
    • nome della classe corrisponde al nome file.php case-sensitive
  • AUTOLOADER
    • NON DEVE lanciare eccezioni od errori a nessun livello
    • NON DOVREBBE tornare valori

ESEMPI

Fully Qualified Class Name Namespace Prefix Base Directory Resulting File Path
\Acme\Log\Writer\File_Writer Acme\Log\Writer ./acme-log-writer/lib/ ./acme-log-writer/lib/File_Writer.php
\Aura\Web\Response\Status Aura\Web /path/to/aura-web/src/ /path/to/aura-web/src/Response/Status.php
\Symfony\Core\Request Symfony\Core ./vendor/Symfony/Core/ ./vendor/Symfony/Core/Request.php
\Zend\Acl Zend /usr/includes/Zend/ /usr/includes/Zend/Acl.php

 

Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.