Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
architettura_generale_cakephp [25/03/2010 18:15] |
architettura_generale_cakephp [25/03/2010 18:47] |
||
---|---|---|---|
Linea 19: | Linea 19: | ||
CakePHP consente di sviluppare applicazioni web basate sul paradigma MVC (Model – View - Controller). Si tratta di uno schema generale di progettazione del software che aiuta a separare logicamente il codice, facendolo più riusabile, mantenibile e solitamente migliore.\\ | CakePHP consente di sviluppare applicazioni web basate sul paradigma MVC (Model – View - Controller). Si tratta di uno schema generale di progettazione del software che aiuta a separare logicamente il codice, facendolo più riusabile, mantenibile e solitamente migliore.\\ | ||
Seguendo il paradigma MVC un’applicazione si struttura in tre parti: il modello, la vista e il controllo. MVC è stato originariamente sviluppato per schematizzare il tradizionale ruolo input, processo e output all’interno del mondo delle interfacce utente.\\ | Seguendo il paradigma MVC un’applicazione si struttura in tre parti: il modello, la vista e il controllo. MVC è stato originariamente sviluppato per schematizzare il tradizionale ruolo input, processo e output all’interno del mondo delle interfacce utente.\\ | ||
- | == Input -> Processo -> Output == | + | \\ |
- | == Controllo -> Modello -> Vista ==\\ | + | Input -> Processo -> Output\\ |
+ | Controllo -> Modello -> Vista\\ | ||
+ | \\ | ||
{{:basic_mvc.png|}}\\ | {{:basic_mvc.png|}}\\ | ||
+ | 1. Model che rappresenta i dati dell'applicazione; 2. View che fornisce la presentazione dei dati del modello; 3. Controller che gestisce ed indirizza le richieste fatte dal client.\\ | ||
+ | \\ | ||
+ | \\ | ||
L’**input** dell’utente, il modello del mondo esterno (processo) e il feedback visuale sono separati e gestiti da oggetti rispettivamente di controllo, modello e vista.\\ | L’**input** dell’utente, il modello del mondo esterno (processo) e il feedback visuale sono separati e gestiti da oggetti rispettivamente di controllo, modello e vista.\\ | ||
Il **controllo** interpreta gli input del mouse e della tastiera dell’utente e mappa queste azioni in comandi che vengono inviati al modello e/o alla vista per effettuare le azioni appropriati.\\ Il **modello** gestisce uno o più elementi di dati, risponde alla query con il proprio stato, e risponde alle istruzioni per cambiare lo stato.\\ La **vista** gestisce la visualizzazione sulla pagina web ed è responsabile per la presentazione dei dati all’utente attraverso la combinazione di grafica e testo.\\ | Il **controllo** interpreta gli input del mouse e della tastiera dell’utente e mappa queste azioni in comandi che vengono inviati al modello e/o alla vista per effettuare le azioni appropriati.\\ Il **modello** gestisce uno o più elementi di dati, risponde alla query con il proprio stato, e risponde alle istruzioni per cambiare lo stato.\\ La **vista** gestisce la visualizzazione sulla pagina web ed è responsabile per la presentazione dei dati all’utente attraverso la combinazione di grafica e testo.\\ | ||
- | Il **Controller** di CakePHP gestisce le richieste dal server. Prende l’input dell’utente (URL e dati POST), esegue la logica applicativa, usa i Modelli per leggere e scrivere i dati dai database e da altre sorgenti, e infine, invia i dati in output al file di visualizzazione appropriato.\\ | + | Il **controller** di CakePHP gestisce le richieste dal server. Prende l’input dell’utente (URL e dati POST), esegue la logica applicativa, usa i Modelli per leggere e scrivere i dati dai database e da altre sorgenti, e infine, invia i dati in output al file di visualizzazione appropriato.\\ |
+ | \\ | ||
+ | I **modelli** di OpenDCN definiscono quali sono gli oggetti che caratterizzano il sistema.\\ | ||
+ | Tutte le classi presenti nella cartella “Models” estendono di fatto la classe AppModel ed alcune integrano anche delle funzioni che gestiscono gli oggetti stessi.\\ | ||
+ | \\ | ||
+ | I **controllers**, come definito da cake, sono gli strumenti che permettono di svolgere determinate azioni sugli oggetti che compongono il sistema.\\ | ||
+ | Tutte le classi presenti nella cartella “controllers” estendono di fatto la classe AppController e definiscono le azioni che vengono invocate per interagire con il sistema.\\ | ||
+ | \\ | ||
+ | La visualizzazione finale delle pagine è definite tramite le **view**.\\ | ||
+ | I files delle viste, contenuti nella cartella “Views” e organizzati in cartelle a seconda del modello che implementano, sono in formato tpl con all’interno la disposizione di form e div che costituiscono la pagina.\\ | ||