Entidad Retadora
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:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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é.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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:
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