2009-10-01 17 views

risposta

13

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à.

+0

Oh, capisco. Quindi sembra che lo stack completo sia analogo a quello strettamente accoppiato. Suona terribile;) Grazie! –

+1

Quando dici magia, intendi che devi codificare meno, perché la struttura rende automaticamente le ipotesi e le maniglie in più? –

+1

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". –

Problemi correlati