Newsgroup: it.comp.www.php
Titolo: Logica corretta MVC

Ciao a tutti, un'informazione dettata dalla vostra esperienza
ipotizzando di voler gestire un sistema di autenticazione, 
registrazione, home page, area prodotti
voi come dividereste i files in una logica MVC?? non vorrei duplicare 
alcune informazioni relative all'utente
View
Pagina registrazione
Pagina login
Pagina prodotti
Pagina home
Model
users (oppure è più corretta chiamarlo user??)
utiilzzo lo stesso model users (oppure user) sia per login che 
registratione oppure li separo??
prodotti (oppure prodotto) con le query di interrogazioni alla tabella 
prodotti
Controller
metto ancora 4 files corrispondenti alle 4 pagine del view?
Grazie infinite!!

 metto ancora 4 files corrispondenti alle 4 pagine del view?
In linea di massima si`, devi avere un controller per ogni pagina. 
Esistono casi particolari in cui puoi avere un controller che mostra view 
differenti in base a certi parametri (per esempio il contact che mostra la 
view col form prima e una view con la conferma di invio dopo), ma nella 
maggior parte dei casi (nel campo web) hai 1 controller <=> 1 view
Non e` detto che devano essere file separati. Questi sono dettagli di 
implementazione che puoi scegliere tu.
Per esempio Zend Framework chiama "Action" la lista di azioni legate a una 
view (quello che sopra ho chiamato controller), e chiama Controller un 
gruppo di action che dovrebbero essere logicamente legate.
Quindi hai ProductController che contiene, per esempio, listAction (per la 
lista dei prodotti, mostrata con la view ad elenco o a tabella), 
detailsAction (per il dettaglio del prodotto con tutti i suoi dettagli), 
ecc.
Il pattern MVC e` abbastanza generico e fumoso per quanto riguarda 
l'implementazione, e viene implementato in decine di modi diversi, in base 
alle caratteristiche dell'ambiente o del linguaggio di programmazione.
I punti fondamentali sono:
1- L'utente da` comandi tramite la view, che li passa al controller. In 
PHP questo e` un po' particolare, perche` la view e` l'html nel browser, 
il comando e` un link o un pulsante, e viene passato direttamente dal 
browser al controller (o alla action) che deve essere attivato.
2- Il controller dialoga con il model in base all'input ricevuto. Per 
esempio scrive dati nel DB o li legge.
3- Il controller passa i dati alla view
4- La view prende quei dati e li visualizza.
Bye.

Grazie mille per le info, io non facevo riferimento al nome delle 
tabelle ma dei files e delle classi dell'MVC
In ogni caso ti ringrazio per il suggerimento sui nomi delle tabelle... 
io usavo Utenti e non Utente pe ril nome di tabella
Tornando al mio problema, scusa ma non ho ancora capito come chiamare i 
files (e le classi) in logica MVC. Anche se la soluzione da adottare, 
come dici tu, è soggettiva... che logica mi consigli?
View
Pagina registrazione
Pagina login
Pagina prodotti
Pagina home
Model
users (oppure è più corretta chiamarlo user??)
utiilzzo lo stesso model users (oppure user) sia per login che 
registratione oppure li separo??
prodotti (oppure prodotto) con le query di interrogazioni alla tabella 
prodotti
Controller
metto ancora 4 files corrispondenti alle 4 pagine del view?
Grazie infinite

 come dici tu, è soggettiva... che logica mi consigli?
Se non sei ancora partito col progetto, ti consiglio di usare un framework 
e di seguire la sua logica.
Se sei partito col progetto, scrivi cosa hai fatto finora e come lo hai 
strutturato.
Ci sono centinaia di combinazioni possibili.
Bye.

 strutturato.
No no non sono ancora partito!!
Per questo volevo impostare la logica corretta
ma anche con altri FMK (esempio zend o code igniter) devo cmq creare io 
i files per Model, View e Control..... quindi partendo dalle esigenze 
precedenti, cosa dovrei creare?
Grazie mille!!

 i files per Model, View e Control
sě, con una infrastruttura sotto che ti semplifica la vita di non poco,
lascia perdere soluzioni ad personam, quelle vanno bene solo in politica
:)

 precedenti, cosa dovrei creare?
Ti posso dire cosa uso io con Zend Framework, e qui trovi il materiale che 
ho presentato al Linux Day a ottobre, parlando di ZF:
http://alex.amiran.it/20081031/linux-day-2008-a-treviso-come-andata/
La struttura e` qualcosa del genere:
/app
- controllers
  |- IndexController.php
  |- AltroController.php
  \- ...
- models
  |- UserList.php
  |- User.php
  |- NewsList.php
  \- News.php
- views
 \- scripts
    |- index
    |  |- index.php
    |  \- other.php
    \- ...
 
/web
- css
  \- main.css
- img
  |- logo.png
  \- ...
- js
  \- jquery.js
- index.php
- .htaccess
...

 :)
quotone.
Scegli uno tra i framework più gettonati (cake, code igniter e pochi
altri) e porta la sua bandiera fino alla morte, non te ne pentirai :)
Io sto con cake.