Back to top

Autore Topic: Cos'è il controller  (Letto 2118 volte)

Offline pino8314

  • Nuovo arrivato
  • *
  • Post: 40
    • Mostra profilo
Cos'è il controller
« il: 09 Lug 2010, 16:17:33 »
Salve,
sto imparando a sviluppare in joomla ma ci sono molti punti interrogativi, iniziamo con questo, cos'è un controller, cos'è questo esempio sotto??

Si ha a questo punto la necessità di definire ed istanziare l'oggetto controller, deputato al controllo delle attività svolte dal componente. È buona norma verificare che il controller sia presente all'interno della variabile globale $_REQUEST utilizzando il seguente codice:

if($controller = JRequest::getWord('controller')) {
$path = JPATH_COMPONENT.DS.'controllers'.DS.$controller.'.php';
if(file_exists($path)) {
require_once $path;
} else {
$controller = '';
}
}

JRequest::getWord('controller')?? che vuol dire?? è una cosa che creo io?? e già presente nelle librerie?? fatemi capice perchè non è molto chiaro

Seconda domanda
Quando passo dei dati da dei form, che sia in POST o in GET, o anche semplicemente in get dalla url, come faccio poi a riprendermeli dalla pagina di destinazione JRequest::getVar();?? basta solo questo??

grazie mille

Offline pino8314

  • Nuovo arrivato
  • *
  • Post: 40
    • Mostra profilo
Re:Cos'è il controller
« Risposta #1 il: 09 Lug 2010, 16:25:26 »
sapete anche conisgliarmi qualche link dove viene spiegato dettagliatamente ogni singola cosa?? se è possibile in italiano...

chessò intendo una documentazione che ti spiega tutto, anche dalle cose più banali, ad esempio
1. cos'è il JFactory
2. cos'è il JRequest
ecc ecc...

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Cos'è il controller
« Risposta #2 il: 09 Lug 2010, 21:23:28 »
ciao pino 8314,
 benvenuto sul forum!  :)

sul wiki di questo sito trovi le info di base per iniziare a sviluppare:

http://wiki.joomla.it/index.php?title=Categoria:Sviluppo_1.5

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

Offline pino8314

  • Nuovo arrivato
  • *
  • Post: 40
    • Mostra profilo
Re:Cos'è il controller
« Risposta #3 il: 12 Lug 2010, 14:59:24 »
grazie mille, sto seguendo questa guida su wiki...toglimi una curiosità velocemente... per vedere se ho capito

allora il model è il cuore dell'applicazione(componente) e contiene tutto il codice relativo alle istruzioni che deve eseguire il componente, registrazioni sul db, routine varie, funzioni varie ecc...

la view mostra soltanto il risultato dato dalle funzioni del model

il controller invece mi permette di interagire con le funzioni del model, quindi di prendere una richiesta http inviata da un form(ad esempio) e inviarla al model che a sua volta interagirà con i dati (e li registrerà anche sul db ad esempio)

ci siamo come logica??

mau_develop

  • Visitatore
Re:Cos'è il controller
« Risposta #4 il: 12 Lug 2010, 15:38:22 »
...beh è ciò che dice la spiegazione, difficile contraddirla...

il principio dell'mvc (ma anche di altri pattern) è quello di avere sempre separati il codice php che "costruisce l'applicazione" dal codice html che visualizzerà l'output.
Siccome esiste un "buon uso" ma non esiste un controllo del buon uso, nulla ti impedisce di infilare ciò che vuoi un po' dove vuoi...
La fatica sarà sempre di "pensare MVC"

M.

Offline pino8314

  • Nuovo arrivato
  • *
  • Post: 40
    • Mostra profilo
Re:Cos'è il controller
« Risposta #5 il: 12 Lug 2010, 15:47:21 »
finalmente qualcuno che mi ha detto ciò che volevo... ero convinto che fossi obbligato, per certi versi, a seguire questa politica... però in fondo posso fare anche un po a modo mio

mau_develop

  • Visitatore
Re:Cos'è il controller
« Risposta #6 il: 12 Lug 2010, 15:56:33 »
però in fondo posso fare anche un po a modo mio
--------------------------------------------------------------------

dipende da ciò che vuoi fare,  ci sono addons composti dal solo entry point, ma se intendi sviluppare un qualcosa di complesso andando a caso... nn funziona sicuramente

Il problema non è riuscire a far fare a Joomla ciò che vuoi tu ma il contrario, se continui a cercare modi per fare meno fatica (apparente) alla fine non avrai un'applicazione scalabile ... a qs punto perchè ti complichi la vita con joomla?

M.
« Ultima modifica: 12 Lug 2010, 15:59:17 da mau_develop »

Offline pino8314

  • Nuovo arrivato
  • *
  • Post: 40
    • Mostra profilo
Re:Cos'è il controller
« Risposta #7 il: 12 Lug 2010, 16:19:29 »
ovvio, volevo solo sapere che esiste un po di flessibilità in tutta questa logica... è naturale che se voglio fare da me non uso più joomla :)...

puoi chiarirmi una cosa che non mi è chiara??
sull'action di un form io non faccio altro che portare l'utente sulla index del sito, dove in get viene specificato quale componente caricare... ma al controller come gli dico quale funzione eseguire?? anch'essa devo passarla in get dal form?? e poi richiamarla cosi??

$controller->execute( JRequest::getVar( 'task' ) );

non mi è chiara questa cosa qui, come non mi è chiaro cosa faccia execute, cosa sia il task... non viene spiegato molto bene... saresti cosi gentile da delucidarmi??
grazie mille

Offline pino8314

  • Nuovo arrivato
  • *
  • Post: 40
    • Mostra profilo
Re:Cos'è il controller
« Risposta #8 il: 12 Lug 2010, 16:54:15 »
in realtà, controllando un componente, vedo che sul form c'è un campo nascosto

<input type="hidden" name="task" value="submit" />

quindi mi viene in mente che sia quello, infatti nel controller c'è una funzione submit.. quindi non per forza deve chiamarsi task il nome del campo...

e cmq lui prende il valore del campo, e quello è il nome della funzione che troverà all'interno del controller... sbaglio?

mau_develop

  • Visitatore
Re:Cos'è il controller
« Risposta #9 il: 12 Lug 2010, 17:56:43 »
...solitamente apro un componente, lo studio, ovvero pastrugno , cerco con google ciò che non capisco, seguo qualche tutorial.... alla fine ho ben chiaro almeno due cose:

ciò che ho capito e ciò che non ho capito.

Dopo due minuti che hai inziato puoi solo avere cose che non hai capito.... ma stiamo qui ad aprire post fino a settimana prox...

M.

 



Web Design Bolzano Kreatif