Entidad Retadora

Estado del reto: Abierto

Fecha límite:

Nuevo reto personalizado

Antecedentes, problema o demanda

PHP Standard Recommendations (PSR)

Lista de las PHP Standard Recommendations (PSR) más relevantes junto con una breve explicación de cada una:

  1. PSR-1: Basic Coding Standard (Estándar básico de codificación):
    • Define un conjunto básico de reglas de codificación que ayudan a mantener un código PHP consistente y legible.
    • Establece reglas como el uso de espacios en blanco, la indentación, el estilo de llaves, etc.
    • Promueve buenas prácticas de codificación para mejorar la legibilidad y la consistencia del código.
  2. PSR-2: Coding Style Guide (Guía de estilo de codificación):
    • Amplía el PSR-1 con reglas adicionales para mejorar la legibilidad y la consistencia del código PHP.
    • Define reglas detalladas sobre la indentación, el uso de espacios en blanco, el estilo de las llaves, la longitud máxima de línea, etc.
    • Fomenta un estilo de codificación uniforme y fácilmente comprensible por los desarrolladores.
  3. PSR-3: Logger Interface (Interfaz de registro):
    • Define una interfaz común para la implementación de sistemas de registro (logging) en PHP.
    • Proporciona un conjunto estándar de métodos para registrar mensajes de diferentes niveles de gravedad (debug, info, warning, error, etc.).
    • Permite a los desarrolladores cambiar fácilmente entre diferentes implementaciones de registro sin tener que modificar su código.
  4. PSR-4: Autoloading Standard (Estándar de carga automática):
    • Define un formato estándar para la carga automática de clases PHP.
    • Especifica un mapeo entre los nombres de las clases y los archivos que las contienen.
    • Facilita la carga automática de clases en un proyecto PHP sin la necesidad de incluir manualmente los archivos de clases.
  5. PSR-6: Caching Interface (Interfaz de caché):
    • Define una interfaz común para la implementación de sistemas de caché en PHP.
    • Proporciona métodos estándar para almacenar y recuperar datos en caché, así como para invalidar y limpiar la caché.
    • Permite a los desarrolladores cambiar fácilmente entre diferentes implementaciones de caché sin tener que modificar su código.
  6. PSR-7: HTTP Message Interface (Interfaz de mensajes HTTP):
    • Define una interfaz común para representar mensajes HTTP en PHP.
    • Proporciona clases estándar para representar peticiones HTTP (request), respuestas HTTP (response) y otros mensajes relacionados.
    • Facilita el manejo y la manipulación de mensajes HTTP en aplicaciones PHP de manera consistente.
  7. PSR-8: Huggable Interface (Interfaz Huggable):
    • Define una interfaz común para objetos que pueden ser abrazados (huggable) en PHP.
    • Proporciona un método hug() que puede ser implementado por clases para permitir que sean abrazadas.
  8. PSR-9: Security Advisories (Avisos de seguridad):
    • Define un estándar para los avisos de seguridad relacionados con el software PHP.
    • Proporciona directrices para la divulgación responsable de vulnerabilidades de seguridad y la coordinación de parches y actualizaciones.
  9. PSR-10: Security Reporting Process (Proceso de informes de seguridad):
    • Establece un proceso para informar de problemas de seguridad en los proyectos de PHP y para coordinar la divulgación responsable de estas vulnerabilidades.
  10. PSR-11: Container Interface (Interfaz de contenedor):
    • Define una interfaz común para los contenedores de inyección de dependencias (DI) en PHP.
    • Proporciona métodos estándar para la obtención y la comprobación de la existencia de objetos en el contenedor.
  11. PSR-12: Extended Coding Style Guide (Guía de estilo de codificación extendida):
    • Amplía el PSR-2 con reglas adicionales para mejorar la consistencia del código PHP.
    • Proporciona reglas más detalladas sobre el estilo de codificación, la estructura del código y las prácticas recomendadas.
  12. PSR-13: Hypermedia Links (Enlaces de hipertexto):
    • Define un formato estándar para representar enlaces de hipertexto en aplicaciones PHP.
    • Proporciona una estructura coherente para la creación y la manipulación de enlaces de hipertexto en las respuestas de API.
  13. PSR-14: Event Dispatcher (Despachador de eventos):
    • Define una interfaz común para los despachadores de eventos en PHP.
    • Proporciona un mecanismo estándar para la gestión de eventos y la ejecución de callbacks en respuesta a esos eventos.
  14. PSR-15: HTTP Server Request Handlers (Manejadores de solicitudes de servidor HTTP):
    • Define un estándar para los manejadores de solicitudes de servidor HTTP en PHP.
    • Proporciona una interfaz común para procesar solicitudes HTTP y generar respuestas.
  15. PSR-16: Common Interface for Caching Libraries (Interfaz común para bibliotecas de caché):
    • Define una interfaz común para las bibliotecas de caché en PHP.
    • Proporciona métodos estándar para almacenar y recuperar datos en caché, así como para invalidar y limpiar la caché.
  16. PSR-17: HTTP Factories (Fábricas HTTP):
    • Define fábricas estándar para crear objetos relacionados con HTTP en PHP, como solicitudes, respuestas, URI, stream y más.
    • Facilita la creación de objetos HTTP de forma consistente y sin acoplamiento a implementaciones específicas.
  17. PSR-18: HTTP Client (Cliente HTTP):
    • Define una interfaz común para los clientes HTTP en PHP.
    • Proporciona métodos estándar para enviar solicitudes HTTP y recibir respuestas de servidores HTTP.
  18. PSR-19: Service Providers (Proveedores de servicios):
    • Define un estándar para los proveedores de servicios en PHP.
    • Proporciona una estructura común para registrar y acceder a servicios en una aplicación PHP.
  19. PSR-20: Meta-Documentación (Meta-documentación):
    • Define un formato estándar para la documentación de las PHP Standard Recommendations (PSR).
    • Proporciona directrices para la creación y el mantenimiento de la documentación de las PSR.
  20. PSR-21: URI Template (Plantilla de URI):
    • Define un formato estándar para las plantillas de URI en PHP.
    • Proporciona una sintaxis coherente para la construcción de URI basadas en plantillas con variables y expresiones.
  21. PSR-22: HTTP Factories (Fábricas HTTP):
    • Amplía y revisa el PSR-17 para mejorar la consistencia y la funcionalidad de las fábricas HTTP en PHP.
    • Proporciona métodos estándar para crear objetos relacionados con HTTP de manera más flexible y eficiente.

Estas son algunas de las PSR más importantes y ampliamente utilizadas en el ecosistema de PHP. Siguiendo estas recomendaciones, los desarrolladores pueden escribir código más limpio, consistente y fácilmente mantenible.

Necesidad a cubrir

Wikipedia:

PHP Standard Recommendation

El Recomendación Estándar de PHP (PSR) es a PHP especificación publicada por el PHP Framework Interop Group. Similar a Solicitud de especificación de Java para Java, sirve a la estandarización de conceptos de programación en PHP. El objetivo es permitir la interoperabilidad de los componentes y proporcionar una base técnica común para la implementación de conceptos probados para prácticas óptimas de programación y prueba. El PHP-FIG está formado por varios fundadores de frameworks PHP.[1]

Cada PSR es sugerido por los miembros y votado de acuerdo con un protocolo establecido para actuar de manera consistente y en línea con sus procesos acordados.[2]

Situación empresa

Número Nombre Descripción Estado
PSR-0 Autoloading Estándar Describe los requisitos obligatorios que deben cumplirse para la interoperabilidad del cargador automático.https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-3 Despreciado y sustituido por PSR-4https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-status-4
PSR-1 Estándar de Codificación Básica Comprende lo que debe considerarse los elementos de codificación estándar que se requieren para garantizar un alto nivel de interoperabilidad técnica entre el código PHP compartido.https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-5 Aceptadohttps://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-status-4
PSR-2 Guía de Estilo de Codificación Considera PSR-1 y está destinado a reducir la fricción cognitiva al escanear código de diferentes autores. Lo hace enumerando un conjunto compartido de reglas y expectativas sobre cómo formatear el código PHP.https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-6 Depreciado https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-7https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-status-4https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-8
PSR-3 Interfaz del Registrador Describe una interfaz común para registrar bibliotecas.https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-9 Aceptadohttps://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-status-4
PSR-4 Autoloading Estándar Describe una especificación para autocargar clases desde rutas de archivos. Es totalmente interoperable, y se puede utilizar además de cualquier otra especificación de carga automática, incluyendo PSR-0. Este PSR también describe dónde colocar los archivos que se cargarán automáticamente de acuerdo con la especificación.https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-10 Aceptadohttps://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-status-4
PSR-5 Estándar PHPDoc El objetivo principal de este PSR es proporcionar una definición completa y formal del estándar PHPDoc. Este PSR se desvía de su predecesor, el estándar de facto PHPDoc asociado con phpDocumentor 1.x, para proporcionar soporte para nuevas características en el lenguaje PHP y para abordar algunas de las deficiencias de su predecesor.https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-11 Borradorhttps://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-status-4
PSR-6 Interfaz de Almacenamiento en caché El objetivo de este PSR es permitir a los desarrolladores crear bibliotecas conscientes de la caché que puedan integrarse en los marcos y sistemas existentes sin la necesidad de un desarrollo personalizado.https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-12 Aceptadohttps://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-status-4
PSR-7 Interfaz de Mensaje HTTP Describe interfaces comunes para representar mensajes HTTP como se describe en RFC 7230 y RFC 7231, y URI para su uso con mensajes HTTP como se describe en RFC 3986.https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-13 Aceptadohttps://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-status-4
PSR-8 Interfaz Abrazable Establece una forma común para que los objetos expresen aprecio mutuo y apoyo abrazándose. Esto permite que los objetos se apoyen mutuamente de manera constructiva, fomentando la cooperación entre diferentes proyectos PHP.https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-14 Abandonadohttps://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-status-4
PSR-9 Divulgación de seguridad Ofrece a los líderes de proyectos un enfoque claramente definido para permitir a los usuarios finales descubrir divulgaciones de seguridad utilizando un formato estructurado claramente definido para estas divulgaciones.https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-15 Abandonadohttps://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-status-4
PSR-10 Avisos de seguridad Ofrece a los investigadores, líderes de proyectos, clientes potenciales de proyectos y usuarios finales un proceso definido y estructurado para revelar vulnerabilidades de seguridad.https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-16 Abandonadohttps://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-status-4
PSR-11 Interfaz de contenedor Describe una interfaz común para https://en.wikipedia.org/wiki/Dependency_injection contenedores. El objetivo es estandarizar cómo los marcos y las bibliotecas hacen uso de un contenedor para obtener objetos y parámetros ( llamados entradas en el resto de este documento ).https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-17 Acceptedhttps://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-status-4
PSR-12 Extended Coding Style Guide It extends, expands and replaces PSR-2, the coding style guide and requires adherence to PSR-1, the basic coding standard.https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-18 Acceptedhttps://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-status-4
PSR-13 Hypermedia Links It describes common interfaces for representing a hypermedia link.https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-19 Acceptedhttps://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-status-4
PSR-14 Event Manager It describes common interfaces for dispatching and handling events.https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-20 Acceptedhttps://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-status-4
PSR-15 HTTP Server Request Handlers It describes common interfaces for HTTP server request handlers and HTTP server middleware components that use HTTP messages.https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-21 Acceptedhttps://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-status-4
PSR-16 Simple Cache It describes a simple yet extensible interface for a cache item and a cache driver.https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-22 Acceptedhttps://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-status-4
PSR-17 HTTP Factories It describes a common standard for factories that create PSR-7 compliant HTTP objects.https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-23 Acceptedhttps://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-status-4
PSR-18 HTTP Client It describes a common interface for sending HTTP requests and receiving HTTP responses.https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-24 Acceptedhttps://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-status-4
PSR-19 PHPDoc tags It provides a complete catalog of tags in the https://en.wikipedia.org/wiki/PHPDoc standard.https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-25 Drafthttps://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-status-4
PSR-20 Clock It provides a standard way of accessing the clock - allowing interopability during testing, when testing behavior that has timing based side effects.https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-26 Acceptedhttps://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-status-4
PSR-21 Internationalization TBD.https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-27 Drafthttps://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-status-4
PSR-22 Application Tracing TBD.https://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-28 Drafthttps://en.wikipedia.org/wiki/PHP_Standard_Recommendation#cite_note-status-4

Requisitos mínimos a cubrir

 

 

Loading animation