2012-03-30 8 views
7

Honestamente, no estoy tratando de troll. Esta es una pregunta seria que imagino que casi con seguridad tiene una respuesta concreta y objetiva.¿Por qué Symfony 1.x favoreció la convención sobre la configuración pero Symfony 2.x lo contrario?

Symfony 1.x, como Rails, parecía adherirse al principio de convención sobre la configuración. Por ejemplo, cuando crea un módulo y luego crea acciones dentro del controlador del módulo, no tiene que crear nuevas reglas de enrutamiento. Symfony solo sabía qué hacer. Pero ahora con Symfony2 tienes que crear explícitamente las rutas. Esto es sólo un ejemplo. Hay otros casos de lo que parece ser una decisión consciente de favorecer la configuración por sobre la convención. Estoy absolutamente desconcertado sobre por qué.

Así que mi pregunta, una vez más, es: ¿Por qué Symfony 1.x favoreció la convención sobre la configuración, pero Symfony 2.x fue al revés?

Lo siento si esta pregunta está en el lugar equivocado. Supongo que podría no ser una pregunta de programación. Si hay un lugar más apropiado para hacer esta pregunta, házmelo saber y estaré encantado de mudarme allí.

+1

Parece que se mezclan las convenciones sobre la configuración con magia. Symfony2 tiene casi la misma cantidad de convención sobre la configuración. Simplemente se saltaron muchas de las cosas mágicas, así que uno sabe lo que está sucediendo. – Sgoettschkes

Respuesta

6

Symfony2 sigue favoreciendo la convención sobre la configuración, pero simplemente eliminó una gran cantidad de "magia", favoreciendo lo explícito sobre lo "mágico". La razón es que la "magia" fue útil en casos simples, pero a la larga causó mucha confusión y problemas.

Y no solo Symfony2 hizo eso, sino la comunidad PHP en general. Doctrine 2 hizo eso. Zend Framework 2 es doing eso.

+0

+1, solo agregaré que Symfony2 favorece la convención, pero no te obliga a seguirlo, brindando total libertad para la personalización, permitiendo la creación de cosas como KnpRadBundle, lo cual es increíble a mis ojos :) – Inoryy

+0

De acuerdo , Supongo que eso satisface mi curiosidad. Estoy completamente en desacuerdo con lo que hicieron, pero al menos ahora entiendo un poco mejor por qué lo hicieron. –

+0

@JasonSwett Estoy de acuerdo contigo. Algunas personas dicen que es por problemas de rendimiento, pero si tienes que tomar unos días más para codificar una funcionalidad, agregar un servidor a tu arquitectura te costará menos dinero ... – MaximeBernard