Visualizzazione dei risultati da 1 a 10 su 12

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Io per attenermi ad un modello MVC farei così:


    Model
    Una classe per ogni elemento che inserisci nel db, che estendono una classe base, chiamiamola Model


    Model - Classe base con metodi e proprietà comuni
    Recensione - che estende model ma ha metodi/proprietà specifici
    Guida - che estende model ma ha metodi/proprietà specifici
    Itinerario - che estende model ma ha metodi/proprietà specifici

    Puoi anche valutare di usare un ORM per semplificarti la vita.

    View
    Usa un template manager tipo blade o twig per gestire le view.
    Potrai creare blocchi riutilizzabili (tipo header e footer), e contenuti specifici per ogni url.
    Poi userai i dati presi dal db per popolare le varie view in maniera dinamica.


    Controller
    Classi che gesticono le operazioni tra model e view.
    In genere si crea un controller per ogni gruppo di operazioni, ma diciamo che ognuno ha le sue idee.
    Quanti e quali saranno i controller dipende un po' dalle operazioni che vuoi fare.
    Potresti avere per esempio:
    Controller per la gestione degli utenti (se il sito prevede di avere utenti loggati)
    Controller per l'area admin (se c'è un'area admin)
    Controller per visualizzare le notizie
    etc.


    Inoltre nei moderni framework vengono usati dei cosiddetti Service
    I service vengono utilizzati all'interno dei controller per appunto fornire servizi come accesso al database, routing, logging, invio email etc.
    Questi solitamente vengono iniettati tramite il costruttore del controller tramite il design pattern chiamato dependency injection. Creandoli separatamente, e non dentro ai controller, si introduce un ulteriore livello di astrazione che ne semplifica l'aggiornamento/modifica.


    In alternativa, per capire come è strutturato un framework potresti provare ad utilizzare Laravel.

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2016
    residenza
    Italy
    Messaggi
    139
    Quote Originariamente inviata da M4V1 Visualizza il messaggio
    Io per attenermi ad un modello MVC farei così:


    Model
    Una classe per ogni elemento che inserisci nel db, che estendono una classe base, chiamiamola Model


    Model - Classe base con metodi e proprietà comuni
    Recensione - che estende model ma ha metodi/proprietà specifici
    Guida - che estende model ma ha metodi/proprietà specifici
    Itinerario - che estende model ma ha metodi/proprietà specifici

    Puoi anche valutare di usare un ORM per semplificarti la vita.

    View
    Usa un template manager tipo blade o twig per gestire le view.
    Potrai creare blocchi riutilizzabili (tipo header e footer), e contenuti specifici per ogni url.
    Poi userai i dati presi dal db per popolare le varie view in maniera dinamica.


    Controller
    Classi che gesticono le operazioni tra model e view.
    In genere si crea un controller per ogni gruppo di operazioni, ma diciamo che ognuno ha le sue idee.
    Quanti e quali saranno i controller dipende un po' dalle operazioni che vuoi fare.
    Potresti avere per esempio:
    Controller per la gestione degli utenti (se il sito prevede di avere utenti loggati)
    Controller per l'area admin (se c'è un'area admin)
    Controller per visualizzare le notizie
    etc.


    Inoltre nei moderni framework vengono usati dei cosiddetti Service
    I service vengono utilizzati all'interno dei controller per appunto fornire servizi come accesso al database, routing, logging, invio email etc.
    Questi solitamente vengono iniettati tramite il costruttore del controller tramite il design pattern chiamato dependency injection. Creandoli separatamente, e non dentro ai controller, si introduce un ulteriore livello di astrazione che ne semplifica l'aggiornamento/modifica.


    In alternativa, per capire come è strutturato un framework potresti provare ad utilizzare Laravel.
    Ciao M4V1, purtoppo ho avuto degli impegni e non ho risposto subito.ì
    Ho strutturato il mio sito con il modello MVC, vorrei chiederti, quindi con le classi view realizzo semplicemente come andranno visualizzati i dati sulle pagine web?
    Ed i vari controller, quali operazioni tra view e model devono andare a gestire?
    So che possono essere domande banali, ma adesso mi è venuta una leggera confusione, sono andato sicuro solo sulla realizzazione delle model.

    Grazie ancora per l'aiuto!! :-)

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509
    Quote Originariamente inviata da EziT90 Visualizza il messaggio
    quindi con le classi view realizzo semplicemente come andranno visualizzati i dati sulle pagine web?

    Ed i vari controller, quali operazioni tra view e model devono andare a gestire?
    Per esempio il controller chiama una certa funzione del model per richiedere dei dati dal database, una volta ricevuti questi dati, se necessario, li formatta e li passsa alla view per essere mostrati sulla pagina.
    Ultima modifica di Alhazred; 21-07-2018 a 12:23

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2016
    residenza
    Italy
    Messaggi
    139
    Quote Originariamente inviata da Alhazred Visualizza il messaggio


    Per esempio il controller chiama una certa funzione del model per richiedere dei dati dal database, una volta ricevuti questi dati, se necessario, li formatta e li passsa alla view per essere mostrati sulla pagina.
    Grazie per la risposta Alhazred,
    quindi per esempio, nella pagina delle recensioni, che chiamo "recensioni.php", il codice che devo scrivere è quello del controller?
    Inoltre il template, impostando solo la formattazione della pagina, deve essere esteso dai CSS giusto?

    Grazie ancora per l'aiuto!!

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.