Tomemos esto como ejemplo, tengo una llamada de método validateDateTime en una clase Validator. Esta función es tan simple como verificar si la fecha y la hora están en el formato requerido.
namespace MyApp\Util; use \DateTime; class Validator { public static function validateDateTime($dateTime, $format = 'Ym-d') { $d = DateTime::createFromFormat($format, $dateTime); return $d && $d->format($format) == $dateTime; } }Antes de aprender Symfony, siempre uso el método estático para facilitar el uso de la función si la función debe compartirse en la aplicación.
Después de aprender Symfony, sé que Symfony tiene una función completa muy poderosa que es el contenedor de servicios para realizar la misma comodidad para acceder a la función que se usará en toda la aplicación.
Mis preguntas son:
Su comentario y opinión son muy apreciados.
No use métodos estáticos si puede necesitar, en el futuro, otra implementación de la funcionalidad que está escribiendo. El método estático está destinado a ser "estático", no para ser cambiado o ampliado.
El contenedor de servicio "IoC" se usa para hacer que su código sea más fácil de cambiar o ampliar al desacoplar componentes e invertir la confiabilidad entre ellos, puede agregar nuevas implementaciones o cambiar las existentes sin la necesidad de realizar cambios en los componentes dependientes.