standardLib – PHP framework
Sviluppare plugins
In questa sezione vedremo come sviluppare un semplice quanto inutile plugin.
Conoscenze di base
Il namespace del file principale di un plugin per standardLib, deve obbligatoriamente avere la seguente forma:
nome.plugin.class
Il nome della classe principale del plugin deve obbligatoriamente essere uguale al nome del plugin.
Il plugin e tutti i file e cartelle che lo compngono dovranno essere in una cartella con lo stesso nome del plugin.
Quello che realizzeremo a scopo didattico, sarà un plugin che stampa a video “Hello world” oppure “Ciao Mondo” un numero definito di volte.
Ci serviranno dunque due parametri: La lingua (lang) ed il numero di volte che la scritta verrà stampata (num).
Iniziamo a creare il file Hello.plugin.php nella cartella Hello.
La nostra classe si chiamerà quindi Hello. Iniziamo a definirla e dichiariamo le due proprietà num e lang. I parametri che intendiamo utilizzare vanno dichiarati come proprietà protette.
@defined(‘SL_ENGINE’) or die(“accessible only by engine.php”); //obbligatorio dalla versione 0.8.4
class Hello
{
protected $lang;
protected $num;
Definire i valori di default dei parametri
Il valore di default dei parametri va definito nel costruttore di classe, il quale passa come unico argomento la variabile $option (nome obbligatorio).
Nel nostro caso setteremo come default 1 come numero di frasi stampate e la lingua italiana
//default $this->lang = "it"; $this->num = 1;
Sovrascrivere i valori passati in fase di inizializzazione a quelli di default
Per eseguire questa operazione sarà sufficiente includere il file setOption.php che si trova nella cartella lib.
//set option include dirname(__FILE__) . '/../../lib/setOption.php';
A questo punto le proprietà assumeranno l’eventuale nuovo valore passato nell’inizializzazione.
Sviluppare metodi
Ora possiamo sviluppare il metodo pubblico che utilizzeremo per stampare a vido la/le frasi.
public function showHello()
{
switch($this->lang)
{
case "it":
$text = "ciao mondo";
break;
case "en":
$text = "hello world";
break;
}
for($i = 0; $i < $this->num; $i++)
{
echo $text . "\r\n";
}
}
Il plugin completo sarà ora così
class Hello
{
protected $lang;
protected $num;
public function __construct($option)
{
//default
$this->lang = "it";
$this->num = 1;
//set option
include dirname(__FILE__) . '/../lib/setOption.php';
}
public function showHello()
{
switch($this->lang)
{
case "it":
$text = "ciao mondo";
break;
case "en":
$text = "hello world";
break;
}
for($i = 0; $i < $this->num; $i++)
{
echo $text . "\r\n";
}
}
}
Ora copia la cartella Hello contenente il plugin nella cartella plugins di standardLib.
Utilizzare il plugin
Poniamo di voler stampare la frase 5 volte in inglese
include 'standardLib/engine.php';
$model->Plugin("Hello", "num:5,
lang:en");
$model->Plugin['Hello']->showHello();


