Back to top

Autore Topic: Il modello MVC in Joomla  (Letto 12569 volte)

Offline ventus85

  • Instancabile
  • ******
  • Post: 6538
  • Sesso: Femmina
  • Affetta da Joomlaite
    • Mostra profilo
Il modello MVC in Joomla
« il: 23 Apr 2010, 23:29:52 »
Una spiegazione (spero chiarificatrice) su cosa è il modello MCV, concetto essenziale per sviluppare estensioni in Joomla.

Link: http://www.joomla.it/articoli-della-community/4190-il-modello-mvc-in-joomla.html

Buona lettura!
« Ultima modifica: 24 Apr 2010, 00:18:45 da ste »
Se volete aiuto non mandate messaggi privati, ma usate la funzione Cerca e postate sul forum, grazie!

Born in the wind, born to be wild!

Offline bismark2005

  • Abituale
  • ****
  • Post: 1158
    • Mostra profilo
Re:Il modello MVC in Joomla
« Risposta #1 il: 24 Apr 2010, 09:33:52 »
Tempo fa ho fatto un corso di programmazione Java.

Con la  parola Override si indica il termine Object Oriented  che viene utilizzato per descrivere la caratteristica che hanno le sottoclassi di ridefinire un metodo ereditato da una superclasse.Ovviamente non esisterà override senza ereditarietà.

In Joomla per Override si intende la stessa cosa? Se si praticamente a cosa serve? Si può fare un esempio pratico?

Ps: Ma il Php è ad oggetti?

Offline alexred

  • Fuori controllo
  • *
  • Post: 25672
  • Sesso: Maschio
  • Esperto in ozio relaxed
    • Mostra profilo
Re:Il modello MVC in Joomla
« Risposta #2 il: 24 Apr 2010, 09:43:50 »

Offline bismark2005

  • Abituale
  • ****
  • Post: 1158
    • Mostra profilo
Re:Il modello MVC in Joomla
« Risposta #3 il: 24 Apr 2010, 09:51:51 »
Grazie Alex. Ma per Override si intende quello che ho scritto nel post precedente?

In pratica eredito un metodo/template ecc ecc e lo personalizzo giusto?


Grazie

Ps: Comunque al Javaday dicevano che il modello MCV sarà soppiantato molto presto. Si farà tutto lato client.
« Ultima modifica: 24 Apr 2010, 09:56:20 da bismark2005 »

Offline ventus85

  • Instancabile
  • ******
  • Post: 6538
  • Sesso: Femmina
  • Affetta da Joomlaite
    • Mostra profilo
Re:Il modello MVC in Joomla
« Risposta #4 il: 24 Apr 2010, 10:22:31 »
Si, praticamente è la "personalizzazione" del template o del componente.
Secondo me il modello MVC avrà ancora vita lunga, non riesco ad immaginarmi qualcosa che sia tutto lato client...
Se volete aiuto non mandate messaggi privati, ma usate la funzione Cerca e postate sul forum, grazie!

Born in the wind, born to be wild!

Offline gagarin77

  • Appassionato
  • ***
  • Post: 469
  • Sesso: Maschio
    • Mostra profilo
Re:Il modello MVC in Joomla
« Risposta #5 il: 24 Apr 2010, 10:26:42 »
ciao  bismark2005

piu che in "joomla" , quando si parla di creare moduli /componenti
si deve fare riferimento al linguaggio di programmazione base di joomla che è il PHP.

Quindi Override in riferimento al linguaggio di programmazione è quello indicato da te....
se vuoi piu informazioni basta che cerchi in internet info sulla programmazione ad oggetti in PHP....


E' meglio sbagliarsi in fretta che aver ragione troppo tardi

Offline mmleoni

  • Global Moderator
  • Instancabile
  • ********
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Il modello MVC in Joomla
« Risposta #6 il: 24 Apr 2010, 10:36:44 »
ciao bismark2005,

Citazione
In Joomla per Override si intende la stessa cosa? Se si praticamente a cosa serve? Si può fare un esempio pratico?

joomla non è un linguaggio di programmazione, quindi il termine override, senza altre specifiche, è più corretto intenderlo come la capacità del framework di caricare un file differente, se presente, da quello di default, come nell'articolo citato da alexred.


Citazione
Ps: Ma il Php è ad oggetti?

sì, e in quest'ambito override ha lo stesso significato che ha in java. joomla è programmato sfruttando le caratteristiche oop di php.

Citazione
Ps: Comunque al Javaday dicevano che il modello MCV sarà soppiantato molto presto.

questo è circa 20 anni che lo sento dire.

ciao,
marco


mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline mmleoni

  • Global Moderator
  • Instancabile
  • ********
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Il modello MVC in Joomla
« Risposta #7 il: 24 Apr 2010, 10:42:12 »
tra i generatori di patterns MVC, oltre a quello indicato da ventus, cito anche il mio:

http://extensions.joomla.org/extensions/tools/development-tools/12073

ciao,
marco

piccola nota: il mio è più complesso da usare, ma decisamente più potente, dato che genera componenti funzionanti e non solo lo scheletro.
« Ultima modifica: 24 Apr 2010, 10:48:58 da mmleoni »
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline bismark2005

  • Abituale
  • ****
  • Post: 1158
    • Mostra profilo
Re:Il modello MVC in Joomla
« Risposta #8 il: 24 Apr 2010, 14:00:24 »
Ma per usare "questa roba" occorre conoscere Php?

Offline mmleoni

  • Global Moderator
  • Instancabile
  • ********
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Il modello MVC in Joomla
« Risposta #9 il: 24 Apr 2010, 14:44:44 »
ovviamente sì, se sviluppi per joomla non puoi prescindere da una buona conoscenza del php.

ciao,
marco.
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline bismark2005

  • Abituale
  • ****
  • Post: 1158
    • Mostra profilo
Re:Il modello MVC in Joomla
« Risposta #10 il: 24 Apr 2010, 14:46:52 »
Da Java a Php mi conviene?

Offline mmleoni

  • Global Moderator
  • Instancabile
  • ********
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Il modello MVC in Joomla
« Risposta #11 il: 24 Apr 2010, 14:51:43 »
dipende da qual è il tuo settore di lavoro. conoscere un linguaggio in più non fa comunque male  ;)

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline bigham

  • Global Moderator
  • Instancabile
  • ********
  • Post: 3662
  • Sesso: Maschio
  • Contagiato dalla Joomlaite :)
    • Mostra profilo
Re:Il modello MVC in Joomla
« Risposta #12 il: 24 Apr 2010, 20:36:37 »
Brava ventus85!
Ottimo articolo! ;D

Appena ho un pò di tempo provo anche il generatore MVC di Marco (già scarrrricato! ;))
Ci sono più cose in cielo e in terra, Orazio, di quante ne sogni la tua filosofia.

Offline ventus85

  • Instancabile
  • ******
  • Post: 6538
  • Sesso: Femmina
  • Affetta da Joomlaite
    • Mostra profilo
Re:Il modello MVC in Joomla
« Risposta #13 il: 24 Apr 2010, 21:56:53 »
Grazie!
Se volete aiuto non mandate messaggi privati, ma usate la funzione Cerca e postate sul forum, grazie!

Born in the wind, born to be wild!

mau_develop

  • Visitatore
Lo schema MVC
« Risposta #14 il: 14 Mag 2010, 09:29:25 »
L'introduzione del paradigma a oggetti nel linguaggio php ha di fatto reso questo linguaggio compatibile con le logiche di altri linguaggi che nascono già per funzionare secondo qs logica.
Inoltre ci permette di creare strutture molto complesse basate su "complessità" minori, ovvero gli oggetti di cui è composta e soprattutto di rendere scalabili le nostre applicazioni.
Intervenire con una implementazione su un codice procedurale ci costringe a modificare grandi quantità di codice e a volte ci accorgiamo che la struttura che abbiamo creato non è adatta a supportare le nuove funzionalità che vorremmo aggiungere senza ricorrere ad antieconomiche modifiche.

L'uso degli oggetti semplifica molto il lavoro di un programmatore, poichè creando "micro entità autosufficienti" poste in relazione tra loro è intuitivo pensare che l'implementazione possa avvenire o creando nuove entità o evolvendone una già esistente o perchè no, entrambe.
Ma c'è un'altro importante vantaggio che ci consente questo paradigma ed è quello di garantire la scalabilità di un'applicazione, a patto di costruirla rispettando schemi logici o pattern, MVC è uno di questi.

Chi si trova ad affrontare le prime volte questa logica di sviluppo può lecitamente pensarla come un inutile aggiunta di files e cartelle in un "meccanismo" che potrebbe funzionare altrettanto bene seguendo altre strade. Vero, infatti i primi esempi e tutorial vengono fatti usando la massima semplicità, un "hello world" rende molto bene l'idea di come funziona questo schema, purtroppo per l'estrema semplicità non ne evidenzia i vantaggi e le peculiarità. Fidatevi che ci sono.
MVC non è esclusiva di Joomla!, altri framework quali Zend usano questo schema, perchè il suo scopo è quello di fornire uno "standard" attorno al quale sviluppare applicazioni dove la logica è completamente separata dalla visualizzazione. In parole povere il php da una parte e l'html o altri markup da un'altra, per riunirsi al momento della costrizione della pagina per la visualizzazione.
Vediamo questo schema,... dicevamo MVC, ovvero model-view-controller, senza inglesismi modello-visualizzazione-controller.
Chi fa cosa?

Il MODELLO: è la logica dell'applicazione e si occupa di interagire con il database, di fornire "elaborazioni" di dati attraverso i suoi metodi,... insomma è un po' il motore,

la VISUALIZZAZIONE è ciò che l'utente vedrà, quindi il codice per la visualizzazione della pagina, in genere l'html,

il CONTROLLER è colui che consente di unire il modello e la visualizzazione, rispondendo ad eventi previsti e quindi gestiti.

In pratica il controller si occupa di soddifare la richiesta proveniente dall'http utilizzando i metodi creati nel model e generando dati che verranno presi in carico dalla view per la visualizzazione.. semplice no?
Le eventuali altre cartelle e files presenti svolgono solamente funzioni di supporto, ci può essere dunque una cartella per gli script js o ajax, una per le immagini una per una nostra classe di appoggio e così via.

Dicevamo che serve a separare la logica dalla visualizzazione, vediamo come.
Immaginiamo di dover recuperare una lista di nomi.

Con un codice procedurale e non tenendo conto del MVC faremmo semplicemente cosi:

listanomi.php
-> connessione db
-> query db
-> while($row = mysql_fetch_object($result)
-> show diretto dei risultati: <p> echo del dato</p>

Con MVC dovremo mettere il codice giusto al posto giusto, ovvero:

nel modello:
-> connessione db
-> query db
-> funzione che ritorna i dati (array)

nel controller:
-> chiamo la funzione del model per ottenere i dati
-> uso una funzione predefinita per chiamare il display del template mettendo a disposizione i dati recuperati

nella view:
<p> echo del dato</p>

Questo è quello che avviene generalmente in uno schema MVC, cosa cambia in Joomla?

Nulla, o quasi, ma tutto in meglio.
All'interno del framework Joomla la prima classe che viene istanziata è l'applicazione. Questo ci mette a disposizione metodi che ci semplificheranno notevolmente la scrittura del codice, es. quello che sopra ho scritto:
-> connessione db
-> query db
-> while($row = mysql_fetch_object($result)

in realtà richiederebbe qualche riga di codice in più per funzionare, quelle monotone ripetizioni di codice che dobbiamo necessariamente scrivere tutte le volte.
Joomla ci semplifica la vita avendo già a disposizione semplici funzioni (metodi della/e classe) che lo fanno per noi, riducendo la quantità di codice necessario alla scrittura a quello che ho citato io nell'esempio, infatti diventerebbe:

-> $db =& JFactory::getDBO(); (creo un'istanza dell'oggetto database che mi consente di accederne alle proprietà e di usarne i metodi contenuti nelle classi)
-> $query = 'SELECT * FROM #__nome_tabella'; (preparo la query)
-> $result = $db->setQuery($query); (la eseguo)
-> $dati = $db->loadResult(); (estraggo i dati e li metto a disposizione del controller e quindi della view)

Vabbè dai, io avevo scritto tre righe e ne sono uscite quattro... ma vi siete resi conto dei vantaggi?

M.

Offline e123456

  • Esploratore
  • **
  • Post: 127
  • Sesso: Femmina
    • Mostra profilo
Re:Lo schema MVC
« Risposta #15 il: 14 Mag 2010, 14:28:37 »
Non so se sono OFF TOPIC ma leggendo il tuo post mi è sorta spontanea una domanda... mi è chiara la struttura MVC sia per il lato admin che site. Un passaggio però non mi è chiaro... per capirci ho creato il mio primo componente seguendo la guida (scaricata da qui) ed il codice sorgente di com_hello4... prendendo in considerazione questo esempio ad un certo punto ho notato che nel MODELLO quindi cartella MODELS ci stavano due sottocartelle HELLO e HELLOS... e non mi è chiara la differenza. Potresti aiutarmi? Sarà colpa della guida in inglese?!?!  >:(
Grazie e ciao

mau_develop

  • Visitatore
Re:Lo schema MVC
« Risposta #16 il: 14 Mag 2010, 14:37:26 »
se non si prendono scorciatoie che comunque possono essere valide, avrò tante cartelle quante saranno le views.
Due views, due cartelle, due models.

è per questo che dicevo che può smbrare uno "spreco" di cartelle e files, in quell'esempio si immagina che le due view verranno poi implementate di funzionalità, icone etc e non che servano banalmente a visualizzare un hello o degli hellos

M.

Offline ste

  • Instancabile
  • ******
  • Post: 8774
  • Sesso: Femmina
    • Mostra profilo
Re:Il modello MVC in Joomla
« Risposta #17 il: 14 Mag 2010, 15:51:30 »
Ciao mau_develop,
ho unito il tuo post a quello di ventus, che ha scritto un articolo proprio su questo argomento. Le vostre utili considerazioni sul modello MVC saranno sicuramente di aiuto a chi si appresta a sviluppare estensioni per Joomla ;)
TTI - Team Traduzione Italiano di Joomla.it - Guide su Joomla

 



Web Design Bolzano Kreatif