psr estandar php coding-style side-effects

php - estandar - PSR-1 2.3 Regla de los efectos secundarios



php fig (1)

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 lo obliga a mantener su lógica en los métodos de clase, e implícito.

Recuerde que los estándares de codificación existen para que las personas codifiquen en un estilo similar. El beneficio de adoptar un estándar de codificación es que su base de código es autoconsistente y coherente con otros proyectos siguiendo las reglas.

PSR-1 sigue en gran parte 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 adoptes PSR-1 por el bien de. Si tiene una razón válida para no seguir las reglas en ciertos puntos, rompa las reglas. No son leyes. El sentido común reina supremo.

Fuente: Soy uno de los contribuidores de ese documento.

Tengo una pregunta con respecto a los estándares de codificación básicos de PHP PSR1. PSR 1 Regla 2.3 establece:

Regla 2.3 Efectos secundarios

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

La frase "efectos secundarios" significa la ejecución de lógica no relacionada directamente con
declarando clases, funciones, constantes, etc., simplemente desde la inclusión del archivo .

Los "efectos secundarios" incluyen, entre otros: generación de resultados, explícitos
uso de ''require'' o ''include'', conectando a servicios externos, modificando ini
configuración, emisión de errores o excepciones, modificación de variables globales o estáticas,
leer desde o escribir en un archivo, y así sucesivamente.

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