2012-03-30 7 views
7

sinceramente non sto cercando di trollare. Questa è una domanda seria che immagino abbia quasi certamente una risposta concreta e obiettiva.Perché Symfony 1.x ha preferito la convenzione sulla configurazione ma Symfony 2.x è il contrario?

Symfony 1.x, come Rails, sembrava aderire al principio della convenzione sulla configurazione. Ad esempio, quando si crea un modulo e quindi si creano azioni all'interno del controller del modulo, non è necessario creare nuove regole di routing. Symfony sapeva solo cosa fare. Ma ora con Symfony2 devi creare esplicitamente i percorsi. Questo è solo un esempio. Ci sono altri casi di ciò che sembra essere una decisione consapevole di favorire la configurazione rispetto alla convenzione. Sono assolutamente sconcertato sul perché.

Quindi la mia domanda, ancora una volta, è: Perché Symfony 1.x ha preferito la convenzione sulla configurazione ma Symfony 2.x il contrario?

Ci scusiamo se questa domanda è nel posto sbagliato. Suppongo che potrebbe non essere una domanda di programmazione. Se c'è un posto più appropriato per me per fare questa domanda, fammi sapere e mi trasferirò felicemente lì.

+1

Sembra che si mescoli la convenzione sulla configurazione con la magia. Symfony2 ha quasi la stessa quantità di convenzione sulla configurazione. Hanno semplicemente saltato gran parte delle cose magiche in modo da sapere cosa sta succedendo. – Sgoettschkes

risposta

6

Symfony2 favorisce ancora la convenzione sulla configurazione, ma si è appena sbarazzato di un sacco di "magia", favorendo l'esplicito rispetto a "magico". La ragione è che la "magia" è stata utile in casi semplici, ma a lungo andare ha causato molta confusione e problemi.

E non solo Symfony2 lo ha fatto, ma la comunità PHP in generale. Doctrine 2 lo ha fatto. Zend Framework 2 è doing quello.

+0

+1, aggiungo semplicemente che Symfony2 favorisce davvero le convenzioni, ma non ti obbliga a seguirlo, fornendo piena libertà di personalizzazione, permettendo la creazione di cose come KnpRadBundle, che è fantastico ai miei occhi :) – Inoryy

+0

Bene , Immagino che soddisfi la mia curiosità. Sono completamente in disaccordo con quello che hanno fatto, ma almeno ora capisco un po 'meglio perché lo hanno fatto. –

+0

@JasonSwett Sono d'accordo con te. Alcuni dicono che è per problemi di prestazioni, ma se devi impiegare qualche giorno in più per codificare una funzionalità, aggiungere un server alla tua architettura ti costerà meno soldi ... – MaximeBernard