Sono sull'inizio della mia strada "Impara MVC". Fondamentalmente, non ho grossi problemi con la programmazione orientata agli oggetti, ma c'è un aspetto tecnico che necessita di chiarimenti. Sembra che la mia teoria non sia abbastanza buona.controller vs. Modello - Necessità spiegazione
Attualmente, sto usando quadro KohanaPHP, versione 3.
situazione Esempio: Ho un sito web, dove l'utente può inviare un articolo.
così ho seguente struttura:
classes/
/controllers/
article.php
/models/
articles.php
Fin qui tutto bene. Non ho problemi con i modelli che estendono Kohana_Model, ma non sono sicuro se sto utilizzando il modo corretto i modelli che utilizzano ORM.
In sostanza quando si utilizzano modelli si estendono Kohana_Model Metterò tutte le operazioni logiche nel modello. Dovrei fare lo stesso per i modelli che usano ORM? In molti esempi sulla rete ho visto i controller che eseguivano operazioni logiche sull'input dell'utente/dati dal database che a mio parere non sono corretti.
Diciamo che ho bisogno di ottenere alcune righe dal database in modo creo metodo corretto nel modello e restituendo l'oggetto. Penso sia corretto, non è vero?
Fondamentalmente, tutte le operazioni di input dell'utente/dati (selezionare da db, inserire in db, convalida) metto nei modelli. Questo è il modo in cui comprendo il modello di progettazione MVC. I modelli dovrebbero fare attenzione a tutte le operazioni "meccaniche" e il controller è solo un "ponte" tra i modelli/viste ed è un motore "frontale".
E 'un approccio corretto?
So che potrebbe essere una domanda stupida per gli utenti più avanzati, tuttavia voglio imparare solo le buone pratiche. Se qualcuno potesse fornire qualche chiarimento, ne sarei felice.
Non è una domanda stupida. L'argomento è solo confuso perché l'originale [pattern MVC non corrisponde bene all'elaborazione nelle applicazioni web] (http://stackoverflow.com/questions/1549857/simple-php-mvc-framework/1549970#1549970). Quindi non cercare di trovare l'approccio "corretto". Spesso è più appropriato usare una struttura tipo PMVC, in cui il modello è solo l'interfaccia di database inconsapevole. – mario