in Otros

Escucharon hablar PSR ?

ooxml-isoHace unos años atras me uni a un grupo de google llamado php-fig, este grupo pretendía definir estándares de desarrollo para la comunidad PHP con el ánimo de unificar el ecosistema de frameworks, librerías, componentes y aplicaciones desarrolladas en PHP.

Hoy leí este articulo que me parece muy bueno y decidí escribir sobre lo mismo para transmitir esta información y ademas añadirle un poco de mis condimentos.

Este grupo esta formado por los referentes mas influentes de la comunidad PHP al momento y estos no pretenden imponer la forma de trabajar pero proponen buenas prácticas y lineamientos a seguir en pos de lograr una estandarización, reutilización de componentes y quien dice, hasta dejar de inventar la rueda todas las veces; es por eso que PSR es la sigla de PHP Standards Recommendation, y el grupo se llama PHP Fig donde Fig viene de la sigla Framework Interoperability Group.

Ellos básicamente discuten temas de importancia en un la lista de correo, aceptan opiniones de gente externa a los miembros votantes, y luego los miembros votantes deciden votando la mejor alternativa.

El primer tópico a discutir fue como implementar un autoloader estándar que pueda levantar cualquier clase de cualquier librería sin muchas complicaciones y evitando tener un autoloader por cada librería que incorporemos a nuestro desarrollo (los que trabajaron con __autoload y spl_autoload_register saben el calvario que es esto). Con este topico implementaron el PSR-0, el cual fue adoptado en principio por Symfony 2 y hoy en día es el corazón de composer.

Después liberaron dos estándares mas, el PSR-1 y el PSR-2 los cuales están referidos a coding standars, si vos formas parte de una empresa de desarrollo que trabaja en PHP deberían comenzar a implementarlo.

Hace muy poco sacaron a la luz el estándar para una interfaz de logeo, PSR-3, esta va a ser la base (de hecho esta muy inspirada) para Monolog.

Ahora están discutiendo como implementar un manejo estándar para el paquete HTTP y como implementar una interfaz estándar para manejo de Caches.

Personalmente me agrada muchísimo este tipo de actividades, lo bueno es que existe algo para los que aman la interoperabilidad entre componentes aceptado en consenso por gente que la tiene muy clara y que lo hace solo por el mero interes de hacer las cosas bien, no por un interes comercial o bajo alguna presión monetaria. Por el otro lado, si bien podes estar o no de acuerdo con las propuestas podes simplemente ignorarlas y hacer lo que te parece, lamentablemente el mercado si adopta las proposals te va a exigir a que vos tambien las implementes, pero eso es al margen.

Mi recomendación es que visiten el grupo, lean las conversaciones, traten de implementar las recomendaciones en sus implementaciones y si pueden hasta deberían participar opinando (a conciencia obviamente).

Les dejo un par de links interesantes para que se metan un poco mas en el tema.

https://groups.google.com/forum/#!forum/php-fig

https://github.com/php-fig/fig-standards

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md

http://net.tutsplus.com/tutorials/php/psr-huh/

Write a Comment

Comment

*

  1. No tanto como las PEP, las PEP plantean proposals para nuevas features de Python entre otras cosas, las PSR no definen funcionalidades internas de PHP sino cuestiones sobre el uso del lenguaje.

    Digamos que las PEP están orientadas al desarrollo del lenguaje Python y las PSR están orientadas al uso del lenguaje PHP.