Continuo a vedere CakePHP e CodeIgniter denominati framework MVC full stack, mentre Zend Framework si dice che sia stack non completo. Cosa significa esattamente questo?Quadro completo di stack MVC PHP non stack completo: qual è la differenza?
risposta
Zend Framework è un framework use-at-will, che consente di utilizzare alcuni dei suoi componenti. È anche possibile utilizzare alcuni di questi componenti in un'applicazione creata utilizzando un diverso framework. In questo modo, un framework use-at-will è più simile a una libreria di classi. *
Una struttura a stack completo significa che l'utilizzo di qualsiasi parte di esso dipende dall'utilizzo di tutto questo. Ad esempio, è necessario utilizzare la libreria di accesso ai dati del framework, l'architettura MVC, l'impalcatura di generazione del codice, ecc. E questi componenti si affidano l'un l'altro per lavorare insieme per formare la struttura completa.
Per il tuo commento: Sì, l'accoppiamento è un modo di guardarlo. Lo considero un equilibrio tra ipotesi e flessibilità. Un framework full stack presuppone che tu stia usando l'intero framework insieme e da questo presupposto si possa fare un po 'di magia extra.
ZF è stato progettato per ridurre al minimo le ipotesi (ovvero, ridurre al minimo l'accoppiamento). I suoi componenti fanno alcune supposizioni sul fatto che tu stia utilizzando il resto dei componenti, riducendo le dipendenze ma aumentando la flessibilità. Ma meno ipotesi significano meno magia.
Entrambi gli stili di struttura presentano vantaggi legittimi.
* Una differenza fondamentale tra una libreria di classi pianura e di un quadro è che un quadro è destinato ad essere estensibile. Sei incoraggiato a migliorare la funzionalità di un framework attraverso meccanismi OO come la sottoclasse o il polimorfismo. Mentre una libreria di classi può assumere che userete le sue API così come sono, senza estenderne le funzionalità.
- 1. Stampa stack di chiamate completo su printStackTrace()?
- 2. Qual è la differenza tra Call Stack e Stack Trace?
- 3. Registrazione dello stack completo con Monolog
- 4. Configurazione di Play! Quadro per mostrare la traccia dello stack completo
- 5. Ottenere la traccia dello stack completo dalla sessione remota
- 6. Come mostrare la traccia dello stack completo su eclipse?
- 7. Test di unità con tracce di stack completo
- 8. Come ottenere lo stack completo di chiamate da Valgrind?
- 9. Qual è la differenza tra lo stack di un filo e lo stack di un processo
- 10. Creazione di uno stack Haskell completo con test
- 11. Come ottenere l'analisi dello stack completo per l'esecuzione asincrona
- 12. Come ottenere lo stack completo delle chiamate nell'applicazione server Delphi
- 13. Stack attività e attività: qual è la differenza tra entrambi.
- 14. Qual è la differenza tra Section e Stack in Blade?
- 15. Xcode 4.3.2 non mostrerà lo stack completo del chiamante nel debugger, solo la funzione corrente?
- 16. Qual è lo stack USB?
- 17. Come per passare alla stack completo .NET in ASP.NET MVC 5 6 progetto
- 18. completo di gettext in php
- 19. Differenza tra "stack di chiamate" e "stack di thread"
- 20. Genera URL completo in MVC?
- 21. Zombie.js non restituisce HTML completo
- 22. Stampa PHP Call Stack
- 23. Come posso vedere lo stack completo del centro di costo in GHC?
- 24. Qual è la differenza tra le parole chiave di Sunspot e il testo completo
- 25. Qual è la profondità massima dello stack di chiamate java?
- 26. Esiste un'app Cart/Catalog che non è un sito completo?
- 27. Traccia stack completo per i metodi intercettati sul sito di chiamata in Unity
- 28. Qual è la differenza tra un errore di segmentazione e uno stack overflow?
- 29. comando non trovato: completo
- 30. qual è la dimensione dello stack in VC++?
Oh, capisco. Quindi sembra che lo stack completo sia analogo a quello strettamente accoppiato. Suona terribile;) Grazie! –
Quando dici magia, intendi che devi codificare meno, perché la struttura rende automaticamente le ipotesi e le maniglie in più? –
Ad esempio, un controller MVC può cercare le classi Visualizza script e Modello in una determinata directory e utilizzando una determinata convenzione di denominazione file. Se i file esistono e hanno i nomi di classe corretti, vengono automaticamente caricati e utilizzati. Nessun codice richiesto, purché si segua la convenzione del framework. Molte convenzioni sono possibili oltre alle convenzioni di denominazione dei file, ad esempio le tabelle e le colonne del database devono essere denominate in un certo modo. Queste idee sono legate a "convenzione sulla configurazione" o "programmazione supponente". –