PSR

PHP-FIG

PHP Framework Interop Group

  • Association de devs
  • Recherche/benchmark sur les framework interops
  • Réflexion et étude sur les futurs standards
  • Production des PSRs : documents et code

PSR

  • Liste évolutive
  • Item immuable
  • Soumis au vote du PHP-FIG
  • Né de plusieurs frameworks PHP

Autoload ?

Exécuter "include"

quand une classe est appelée

 

(construct / appel statique)

PSR-0 / PSR-4

Règles d'autoload :

  • Associer le nom de classe au fichier
  • Associer le namespace aux dossiers

PSR-0 / PSR-4

\Doctrine\Common\IsolatedClassLoader
\Symfony\Core\Request
\Zend\Acl
\Zend\Mail\Message
 => /{path}/vendor/Doctrine/Common/IsolatedClassLoader.php
 => /{path}/vendor/Symfony/Core/Request.php
 => /{path}/vendor/Zend/Acl.php
 => /{path}/vendor/Zend/Mail/Message.php

Avec Composer, dans le dossier "vendor" :

\App\Controller\IndexController
\Tests\Functional\AddCartControllerTest
 => /{path}/src/Controller/IndexController.php
 => /{path}/tests/Functional/AddCartControllerTest.php

Avec Composer, dans son propre projet :

PSR-0 (deprecated)

\namespace\package\Class_Name
\namespace\package_name\Class_Name
 => /{path}/vendor/namespace/package/Class/Name.php
 => /{path}/vendor/namespace/package_name/Class/Name.php

"_" est remplacé par "\" dans le Namespace

Moins flexible que PSR-4 sur les namespaces de base

Coding style guide

  • PSR-2 (deprecated)
  • PSR-12
  • PER Coding Style

@pierstoval

Alex Rock

Freelance dev, architect, coach & trainer

Merci !