Joomla.it Forum

Non solo Joomla... => Sviluppo => : eros23 09 Dec 2009, 16:04:32

: $this->language come fa a chiamare le classi così!
: eros23 09 Dec 2009, 16:04:32
Ciao ragazzi,
premesso che sono nuovo e da poco mi sono messo a modificare il core di joomla perchè mi piace smanettare.

ho notato però che non ho afferrato il concetto di come joomla riesca a chiamare le classi (il framework di joomla lo sto imparando da poco!) per far in modo che chiami in questo modo:

echo $this->language;

abituato a fare:

$obj = new NomeClasse();

e quindi sono abituato a vedere le cose diversamente e cioè così:

echo $obj->language;

Quindi vi chiedo, come fa joomla a utilizzare $this visto che non lo può fare. Spiegatemi meglio questo concetto che sto impazzendo!
: Re:$this->language come fa a chiamare le classi così!
: mau_develop 10 Dec 2009, 17:38:18
Joomla è due classi: JSite e JAdministrator

ti incollo un pezzetto di un tutorial che ho fatto:

L'applicazione è un'oggetto globale usato per processare una request. Le classi dell'applicazione interessate sono JSite e JAdministrator, che processano rispettivamente il frontend e il backend.
Le classi Application estendono la classe astratta base JApplication, infatti molte delle funzionalità di JSite e JAdministrator sono le stesse.
Il document è un'oggetto globale usato per il buffer (non la cache) della response. I tipi di document sono diversi: html, pdf, raw, feed e error. Il document permette ai componenti l'output dei dati; il document html è gestito dal template che si occupa del render della pagina in formato xhtml.
Proprio il fatto di gestire separatamente l'output delle estensioni, aggiungendolo al document in un secondo tempo permette di modificare l'output prima che questo venga inviato al render.
La variabile $mainframe contiene l'oggetto applicazione che è globale, al quale si può avere accesso attraverso le sue funzioni e metodi dichiarando la variabile globale $mainframe.

M.

dimenticavo... il tuo esempio non chiama una classe ma l'oggetto di una classe già istanziata
: Re:$this->language come fa a chiamare le classi così!
: = odino = 13 Dec 2009, 16:51:09
al di là di come effettivamente viene gestito tutto...non tieni in considerazione che, per esempio, pezzi come l'index.php del template, possano essere semplicemente runnati all'interno di una classe, che a quel punto ha tutto il diritto di utilizare il $this  ;)