Un gruppo di istruzioni selezionate conta come un modello valido?

1

Sto facendo un'app per Facebook e sto cercando di seguire correttamente MVC. Ma mi stavo chiedendo se avessi una classe che era una manciata di query fql (ottenendo dati da facebook) dovrei tenerli in un controller o in un modello?

Secondo la guida per l'utente di Codeigniter, i modelli sono classi PHP progettate per funzionare con informazioni nel tuo database ". Dal momento che fql interagisce con i database di Facebook e non i miei, avere una classe piena di ciò che è fondamentalmente solo le istruzioni Select SQL contano come modello valido?

    
posta debuggingFool 25.07.2013 - 07:04
fonte

2 risposte

1

Su un pattern MVC, una classe che gestisce i dati tra il database e l'applicazione sarebbe un modello valido, purché le funzioni al suo interno siano correlate all'entità rappresentata dal modello. Un modello CI erediterà dalla classe del modello di base del framework per consentire all'utente di utilizzare la sintassi dell'elemento della configurazione per la gestione dei dati nel database. Quindi la mia risposta è Sì, è un modello valido ma No, in un certo senso non è un modello di CI valido.

    
risposta data 25.07.2013 - 07:24
fonte
1

Se vuoi essere ortodosso su MVC:

  • Il Modello implementa l'intera logica del dominio e nient'altro che la logica del dominio. Per un gioco, questo include:
    • Lo stato attuale di giocatori, unità, mondo, ecc.
    • Persistenza di tale stato
    • Le regole del gioco (ad esempio, come le unità possono muoversi, cosa succede quando l'unità X spara all'unità Y, ecc.)
  • La vista riguarda la presentazione dell'output all'utente. In un contesto di applicazione Web, ciò significa modelli; A seconda della potenza del tuo sistema di template, potresti aver bisogno di una logica di presentazione al di fuori dei template, e avrai bisogno di un codice di avvio per avviare il motore di template. Anche questi sono parte della vista.
  • La parte Controller riguarda l'elaborazione dell'input dell'utente. Per le applicazioni Web, ciò significa analizzare le richieste, inoltrare i sottocontrolli, convalidare gli input e inviarli al modello.

C'è una parte in più per la quale non ho ancora visto una soluzione pulita in un'applicazione web: è necessario incollare quei tre insieme. Nel rigoroso MVC, le tre componenti sono per lo più indipendenti; le uniche connessioni sono tra controller e modello (il controllore invia richieste di modifiche di stato al modello) e tra il modello e la vista (la vista reagisce alle modifiche di stato nel modello). In un'applicazione Web, tuttavia, il controllore in genere richiede almeno un certo controllo sulla vista: la richiesta in entrata determina quale vista utilizzare, e questa informazione non ha assolutamente nulla a che fare con la logica del dominio, quindi in genere il controllore può selezionare una vista. Molto spesso, il controllore si occupa anche di ottenere dati dal modello e di passarli alla vista.

Fin qui la teoria.

Nella pratica di programmazione web moderna, MVC è solitamente inteso come qualcosa di molto diverso, sulla falsariga di:

  • Modelli sono classi che si associano alle entità del database. Di solito derivano da una classe base generica, che implementa le operazioni CRUD standard e la estendono per implementare metodi specifici per la particolare entità che rappresentano.
  • Viste sono classi che eseguono alcune logiche di presentazione come il filtraggio, la formattazione e talvolta anche la traduzione e caricano e applicano un modello.
  • I controllori sono classi che fanno praticamente tutto il resto: ottenere dati di input dalla richiesta, eseguire la logica di dominio sui modelli, leggere i dati dal modello, creare istanze e visualizzare una vista adatta e talvolta anche cose come reindirizzamento.
risposta data 25.07.2013 - 10:52
fonte

Leggi altre domande sui tag