Mieux comprendre les PSR PHP Standards Recommandations AFUP BORDEAUX 20 Juin 2017 | Node Bordeaux
Qui suis-je ? Nicolas Perussel 33 ans 11 ans d’expérience Twitter : @mamoot64 Github : acidline mamoot.fr
PHP-FIG : PHP Framework Interoperability Group Crée en Mai 2009, au PHP[TEK] de Chicago « Réunion informelle » initialisée par Travis Swicegood (PEAR) Sous le nom : PHP Standards Group PSR 0 : autoloading standard “By having official representatives from PEAR, Agavi, Cake, Solar, and Zend Framework and unofficial representation from Phing and Symfony, we had a good cross section.”
PHP-FIG : PHP Framework Interoperability Group 2 ans d’absence puis en 2011 : Changement de nom PSR 1 (basic coding style), PSR 2 (coding style), PSR 3 (logger)
Sondage en interne : orientation Spécification « soft » ou « hard » 2013 Sondage en interne : orientation Spécification « soft » ou « hard » Toujours de soucis d’organisation (Qui ? Quoi ? Comment ?) Débat si intervention « personnes » ou « projets » vote en Avril 2013 Règlement opaque, pauvre (ByLaws) Question de la « propriété » d’une spécification : PSR 4 (Autoloading), PSR 6 (Cache), PSR 7 (HTTP Message) Juillet 2013 rédaction et amélioration des « ByLaws » Phil Sturgeon Larry Garfield
Structure du groupe Vers un FIG 3.0 ? Membres (Juin 2017) CakePHP | Composer | concrete5 | Contao Open Source CMS | Drupal | eZ Publish Horde | IBM i Toolkit | Icicle | Jackalope | Joomla | Lithium | Magento | PEAR | Phalcon | Phing | phpBB | phpDocumentor | PHPixie | Pimcore | PPI Framework | PrestaShop | PyroCMS | ReactPHP | Revive Adserver | SculpinSilver | Stripe | Slim Stash | Stormpath PHP SDK SugarCRM | Symfony | Neos and Flow | Wikibase and Semantic MediaWiki | Yii framework | Zend Framework 2 | Zikula
Procédure de création http://www.php-fig.org/bylaws/psr-workflow/ VOTE ACCEPTANCE MEMBRES ACCEPTATION DE LA PSR IDEE Editeur et coordinateur « random » + sponsor VOTE DES MEMBRES 1, -1, 0 DRAFT DE LA PSR REVIEW QUORUM + MAJORITE (14 jours)
Impact au quotidien PSR-0 a permis l’établissement de COMPOSER PSR-1 and PSR-2 appliqué à tous les IDE et dans beaucoup de projets PHP PSR-3 logger 65 831 479 installations (via Packagist) PSR-6 cache 5 914 661 installations (via Packagist) PSR-7 Http Message 28 625 535 installation (src Packagist) The PSR-7 : mise en place dans la majorité des framework -> middleware
PHP FIG site is not update PSR Accepted http://www.php-fig.org/psr/ PHP FIG site is not update
PSR Draft http://www.php-fig.org/psr/
PSR Deprecated http://www.php-fig.org/psr/
J’ai besoin de 3 / 4 volontaires PSR : PSR-3 Un exemple pour bien comprendre : LoggerInterface J’ai besoin de 3 / 4 volontaires
PSR : PSR-7 & PSR-15 HTTP MESSAGE + MIDDLEWARE Converting HttpFoundation Request to a Zend Diactoros Server Request Implementing PSR-7 Psr\Http\Message\ServerRequestInterface Convert HttpFoundation Response to a Zend Diactoros Response Implementing PSR-7 Psr\Http\Message\ResponseInterface Source : https://medium.com/@Inviqa/an-introduction-to-psr-7-in-symfony-d723c00385b
PSR : PSR-7 & PSR-15 HTTP MESSAGE + MIDDLEWARE Un middleware est quelque chose qui prend une requête et retourne une réponse. Mathieu Napoli
Principe de couche « oignon » PSR : PSR-7 & PSR-15 HTTP MESSAGE + MIDDLEWARE Principe de couche « oignon » Notion de « Pipe »
https://github.com/oscarotero/psr7-middlewares PSR : PSR-7 & PSR-15 MIDDLEWARE DISPOS https://github.com/oscarotero/psr7-middlewares
Merci de votre écoute Sources : http://www.php-fig.org/ https://www.sitepoint.com/the-past-present-and-future-of-the-php-fig/ http://mnapoli.fr/presentations/forumphp-middlewares/#1 https://medium.com/@Inviqa/an-introduction-to-psr-7-in-symfony-d723c00385b https://github.com/oscarotero/psr7-middlewares