Back to top

Autore Topic: $this->language come fa a chiamare le classi così!  (Letto 1493 volte)

Offline eros23

  • Nuovo arrivato
  • *
  • Post: 1
    • Mostra profilo
$this->language come fa a chiamare le classi così!
« il: 09 Dic 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!

mau_develop

  • Visitatore
Re:$this->language come fa a chiamare le classi così!
« Risposta #1 il: 10 Dic 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
« Ultima modifica: 10 Dic 2009, 17:41:41 da mau_develop »

Offline = odino =

  • Instancabile
  • ******
  • Post: 5696
  • Sesso: Maschio
  • "In realtà li trasforma in menomati" Danzel
    • Mostra profilo
Re:$this->language come fa a chiamare le classi così!
« Risposta #2 il: 13 Dic 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  ;)

 



Web Design Bolzano Kreatif