FasterJoomla

Joomla security and optimization

Visita il nuovo sito FasterJoomla che raccoglie i nostri articoli ed estensioni per Joomla!

Si parla di sicurezza, velocità, sviluppo di estensioni per Joomla.

Trovate pubblicate anche le nostre guide pratiche.

La creazione di oggetti in un linguaggio di programmazione è una pratica assolutamente fondamentale nella realizzazione di applicazioni complesse; ma come forma mentis aiuta farlo anche se costruite piccoli programmi di utilità.

In questo articolo discutiamo come creare tecnicamente un oggetto; tuttavia ben più importante è analizzare il problema e definire quali metodi e proprietà ed eventi debba avere questo oggetto per soddisfare al requisito di poter esistere indipendentemente dall'applicazione che lo usa.

In particolare, questo è indispensabile per effettuare sviluppo test-driven. Permette di raggiungere livelli di sicurezza notevoli; ma è anche il modo più facile per garantire che qualunque cosa riguardi l'oggetto non esce dai confini dell'oggetto; e quindi posso con tranquillità incorporare l'oggetto in progetti diversi, e aggiornarlo, senza dover cambiare altro codice fuori dall'oggetto.

Qui vogliamo concentrarci solo sulle differenze tra le funzioni che abbiamo creato nel passo 1, e la loro trasformazione in oggetto.

L'oggetto viene instanziato (creato) da

var msgBox = new _msgBox()

dove _msgBox() è una funzione normalissima all'interno della quale è possibile definire alcune proprietà usando l'oggetto this.

// --------------------- _msgBox --------------------------------
// L'oggetto _msgBox, che verrà istanziato nella variabile msgBox.
function _msgBox()
{
    // le proprietà dell'oggetto si definiscono usando la parola riservata this.
    this.divMsg;
    this.message = "";
    this.button1 = "Yes";
    this.button2 = "No";
    this.button1Result = true;
    this.button2Result = false;
}

Ho creato alcune proprietà che saranno utili più avanti.

Per quanto riguarda i metodi, benché sia possibile dichiararli in-line, è francamente molto più semplice e ordinato modificare il prototype dell'oggetto appena creato: quindi

// Le funzioni invece si definiscono più comodamente con prototype.
_msgBox.prototype.ask = function (msgHTML)
{
    this.divMsg = document.getElementById("msgbox")
    this.button1 = "Yes";
    this.button2 = "No";
    this.button1Result = true;
    this.button2Result = false;
    this.divMsg.firstChild.innerHTML = msgHTML;
    this.divMsg.style.display = "block"
}

A questo punto sarà possibile invocare la nuova funzione (l'oggetto è già istanziato): quindi

<a href="#" onclick="javascript:msgBox.ask('dormi?')">dormi?</a><br>

 

 


I file descritti in questo articolo si possono scaricare dall'introduzione