PSR-1 2.3 Regla de efectos secundarios

Tengo una pregunta con respecto a las normas básicas de encoding PHP PSR1. PSR 1 La regla 2.3 establece:

Regla 2.3 Efectos secundarios

Un archivo DEBERÍA declarar nuevos símbolos (clases, funciones, constantes,
etc.) y no causa otros efectos secundarios, o DEBERÍA ejecutar la lógica con el lado
efectos, pero NO DEBE hacer ambas cosas.

La frase “efectos secundarios” significa ejecución de lógica no directamente relacionada con
declarar clases, funciones, constantes, etc., meramente de incluir el archivo .

Los “efectos secundarios” incluyen, entre otros: generar resultados, explícitos
uso de ‘require’ o ‘include’, conexión a servicios externos, modificación de ini
configuraciones, emitiendo errores o excepciones, modificando variables globales o estáticas,
leer o escribir en un archivo, y así sucesivamente.

¿Puede alguien darme un argumento que respalde el uso de esta regla? O bien, explique el beneficio de esta regla y por qué es importante o una buena idea implementarla. Esto me ayudará a apoyar la implementación completa de PSR 1 y presentar un buen caso.

La idea es que cuando una clase se carga automáticamente, el estado de la aplicación no debe cambiar. Cualquier código de modificación de estado (código que realmente se ejecuta) debe estar en un conjunto diferente de archivos.

Esto lo hace predecible y te obliga a mantener tu lógica en los métodos de clase, e implícita.

Recuerde que existen estándares de encoding para que las personas codifiquen con un estilo similar. El beneficio de adoptar un estándar de encoding es que su base de código es auto consistente y consistente con otros proyectos que siguen las reglas.

PSR-1 sigue en gran medida lo que todos ya estaban haciendo. Si siente la necesidad de ejecutar la lógica en el mismo lugar donde se define una clase, es muy probable que haya un mejor lugar o enfoque.

Por último … no adopte PSR-1 por el bien de. Si tiene una razón válida para no seguir las reglas en ciertos lugares, rompa las reglas. No son leyes. El sentido común reina supremo.

Fuente: Soy uno de los contribuyentes de ese documento.

Intereting Posts