Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    169

    MVC, cos'è IN PRATICA?

    Ciao ragazzi, che ci crediate o no mi avvicino a questo tempa vermente per caso.. su un bus per il centro di londra trovo un ing. del software che accanto a me mi guarda mentre leggo una guida da html.it

    Parlando di php e tra una parola e l'altra mi propone questo MVC e ruby on rail di cui non ho mai sentito parlare..

    Ora, ho letto un pò di posts e articoli ma sinceramente non ho ancora afferrato pienamente il concetto, in breve:

    che sono???

    Grazie
    D'inverno lo snowboard,
    A primavera lo skateboard,
    D'estete il kite-surf
    ..e in autunno???

  2. #2
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  3. #3
    Model View Controller ... e ne Ruby On Rails ( ma si avvicina ), ne altri Framework PHP ... hanno capito tanto meglio di te cosa significhi, schiaffando elaborazioni server ovunque nella view, scavalcando il Model e perdendo il Control


    (scusa ma oggi son pessimista e rassegnato)


    http://en.wikipedia.org/wiki/Model-view-controller
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    169
    Grazie per l'aiuto, avevo già letto la documentazione du wikipedia (in inglese è più completa!), però sono sempre là..niente!

    Qualcuno che li usa, perchè li usa? Cosa ci fa? Un esempio banale con relativo vantaggio??
    Esempio concreto insomma!!
    D'inverno lo snowboard,
    A primavera lo skateboard,
    D'estete il kite-surf
    ..e in autunno???

  5. #5
    http://www.symfony-project.com/tutor...t_project.html

    Symfony si basa su MVC ed il succo del discorso è il seguente:

    Model
    definisci un modello, cosa ti aspetti che accada, quali sono le informazioni utili e/o da gestire ed altor ancora
    codice:
    methods:
      post:           [author, email, body]
      get:            [author, email, body]
    
    fillin:
      enabled:       on
    
    names:
      author:
        required:     Yes
        required_msg: The name field cannot be left blank
    
      email:
        required:     No
        validators:   emailValidator
    
      body:
        required:     Yes
        required_msg: The text field cannot be left blank
    
    emailValidator:
      class:          sfEmailValidator
      param:
        email_error:  The email address is not valid.

    Controller
    Crei le classi, i metodi o quello che vuoi per gestire le informazioni, fare operazioni nel DB, manipolare i risultati, gestire errori ed eccezioni
    Codice PHP:
    public function executeUpdate ()
    {
      if (!
    $this->getRequestParameter('id'0))
      {
        
    $comment = new Comment();
      }
      else
      {
        
    $comment CommentPeer::retrieveByPk($this->getRequestParameter('id'));
        
    $this->forward404Unless($comment);
      }
     
      
    $comment->setId($this->getRequestParameter('id'));
      
    $comment->setPostId($this->getRequestParameter('post_id'));
      
    $comment->setAuthor($this->getRequestParameter('author'));
      
    $comment->setEmail($this->getRequestParameter('email'));
      
    $comment->setBody($this->getRequestParameter('body'));
     
      
    $comment->save();
     
      return 
    $this->redirect('post/show?id='.$comment->getPostId());


    View
    in base alle informazioni inviate dal controller, trasformi "la vista" dell'utente (nel caso di Synfony l'html) per mostrargliele in una interfaccia (UI)
    Codice PHP:
    <?php if ($sf_params->has('post_id')): ?>
      <?php echo input_hidden_tag('post_id',$sf_params->get('post_id')) ?> 
    <?php else: ?>
      <tr>
        <th>Post*:</th>
        <td><?php echo object_select_tag($comment'getPostId', array('related_class' => 'Post')) ?></td>
      </tr>
    <?php endif; ?>


    Questo nella maggiorparte dei frameworks PHP ed a grandi linee quello accade anche in RoR ... di fatto le migliori implementazioni stanno nel mondo Java, Python, ed ultimamente .NET

    La trasformazione di un layout in place, implica l'uso del controller (o chiamate allo stesso) dentro la UI, mentre alcuni sistemi più articolati (cocoon ed altri ancora) non sfruttano mezza linea di server per trasformare le informazioni, compito dell'apposito XSLT o nella migliore delle ipotesi (IMHO) del linguaggio client (JavaScript) grazie all'aiuto dell'impaginatore (CSS) ... quindi ogni cosa sta al suo posto



    [edit]
    perchè si usa tanto ... pechè va di moda dire MVC, perchè è giusto definire i compiti tra tecnologie differenti, perchè in un ambiente multi sviluppatori ognuno dovrebbe essere in grado di svolgere la sua atività senza avere idea di cosa accada dall'altra parte, che sia l'ideatore dell'interfaccia, il designer del modello o lo sviluppatore server / client addetto ad altro.

    Il Web, tramite abbastanza scomodo per far si che questo concetto non sia solo un'utopia, basato su vecchi standard e protocolli "armati" in ogni dove per le nuove esigenze, rende questa separazione ai limiti del fattibile ... perchè il controller deve gestire le informazioni per una view capace di gestirle, la view deve sapere cosa riceve dal server per poterlo gestire ed il model non è mai abbastanza intelligente da capire tutte le varie ed eventuali implementazioni da schiaffare in controller e view


    dimenticavo, ovviamente tutto questo post gira sotto il &copy; imho
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    169
    Grande! finalmente qualche esempio pratico..

    ..quindi dove va a finire il vecchio CSS? Può essere ancora usato o è una filosofia parallela?
    D'inverno lo snowboard,
    A primavera lo skateboard,
    D'estete il kite-surf
    ..e in autunno???

  7. #7
    Originariamente inviato da stagestar
    Grande! finalmente qualche esempio pratico..

    ..quindi dove va a finire il vecchio CSS? Può essere ancora usato o è una filosofia parallela?
    Il CSS, per quello che può contare la mia opinione, è un linguaggio a parte, poichè ricco di hacks, problematiche di box-model browser nonchè, per ultimo ma non per importanza, il diretto responsabile di tutta l'interfaccia utente, ergo indispensabile.

    In un futuro prossimo ideale Web, il CSS sarà capace di fare trasformazioni della view (n.d. magari faranno un pattern MVOC - Model View Overview Controller che farà cool) tramite selettori già disponibili nei nuovi browser e mai ben supportati dal caca-browser più usato, Exploder 6 tra un pò sette domani 8 e 10 ... mila ....

    Il bello del CSS è che può essere disarmato dal JavaScript "in un click", quindi prevedo anche un MVOMC - Model View Overview Masterofview Controller entro il 2035

    In poche parole, il Web non si divide in linguaggio server e linguaggio client, ma ha una miriade di strati intermedi che in troppi continuano ad ignorare ... uno tra questi, secondo me, il pattern citato se non sfruttato adeguatamente per tutti questi strati (ancora imho)


    P.S. stai parlando con uno che oggi è pessimista e infastidito ... non prendere per vero tutto quello che scrivo


    [edit]
    P.S.2 .. il pattern è del 1979 ... vero che le buone idee sono dure a morire, ma questa non conosceva ancora il Web, JavaScript, i CSS, i layer di astrazione DB , Ajax, XML, XSL-T e tutta la sfilza di tecnologie supplementari per avere un risultato ... il suo grafico ha 3 riquadri, oggi ne avrebbe scritti, secondo me, almeno una decina (o magari avrebbe detto ... Ok, va bene per Swing, il Web è un altro pianeta)
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  8. #8
    Esempio concreto insomma!!
    phpPatterns
    visto che ti piace l'inglese

    qc in questo thread storcerà il naso ma è un esempio concreto vi sono pure tre tutorials su devshed qui ma
    IMBO Alejandro Gervasio a sto giro sbaglia mescolando l'implementazione model dipendente dal controller
    la view che sembra un controller (penso che sia il suo
    unico tutorial in cui ho storto il naso ) !!!


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

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 © 2025 vBulletin Solutions, Inc. All rights reserved.