back to top

I Plugins di CodeIgniter

Quello dei Plugins di CodeIgniter è un discorso molto simile al tema degli Helpers affrontato nel capitolo precedente di questa guida; Plugins ed Helpers sono infatti componenti molto simili anche sotto l’aspetto funzionale, la differenza sostanziale tra questi due strumenti sta nel fatto che i Plugins mettono generalmente a disposizione una singola funzione estremamente specialistica.

Il Plugin per il CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart), per esempio, contribuisce a rendere più sicuri i i form per il feedback limitando l’azione degli spam bot che riempiono le mailbox degli utenti di "spazzatura digitale", mentre l’Helper per i form del framework ha il compito più generale di aiutare lo sviluppatore nella creazione di moduli per l’interazione con l’utenza.

Inoltre, tecnicamente gli Helpers sono dei componenti integrati all’interno del core (nucleo centrale) di CodeIgniter e ne fanno parte, i Plugins invece sono elementi che fornisco funzionalità addizionali e possono essere sviluppati separatamente rispetto al core del framework; per questo motivo in molti casi possono anche essere definiti come "componenti di terze parti", perché non di rado vengono prodotti da sviluppatori estranei allo staff di programmatori che implementano il core di CodeIgniter.

I Plugins possono essere salvati all’interno della cartella:

system/plugins
in alternativa è possibile creare una cartella chiamata "/plugins" all’interno della directory in cui è stata realizzata la propria applicazione; il framework, al momento della chiamata ad un Plugin, cercherà innanzitutto di caricarlo dal percorso:
system/application/plugins
se questa non esiste, o il Plugin necessario non è stato memorizzato in quella posizione, il framerwork effettuerà una seconda ricerca all’interno della cartella "system/plugins".

Il caricamento di un Plugin avviene attraverso un’apposita funzione di CodeIgniter da utilizzare all’interno di una sintassi simile alla seguente:

$this->load->plugin('nome_plugin');
Ad ogni Plugin corrisponde un omonimo file con estensione ".php" (e suffisso "_pi") all’interno del quale è memorizzato il codice che ne consente il funzionamento; di default la versione 1.7.2 di CodeIgniter mette a disposizione due Plugin salvati nei file denominati "captcha_pi.php" (una semplice estensione per la protezione dei form dallo spam) e "js_calendar_pi.php" (un calendario per blog e siti); quindi per caricare ad esempio il plugin per il CAPTCHA, sarà necessario utilizzare la seguente chiamata:
$this->load->plugin('captcha');
E’ possibile caricare un Plugin da qualsiasi posizione all’interno della funzione di un Controller; il caricamento può avvenire anche da una View, ma gli sviluppatori di CodeIgniter sconsigliano questa pratica un pò come avviene per gli Helpers.

Sempre analogamente a quanto accade per gli Helpers, è possibile caricare simultanemente più Plugins attraverso una medesima chiamata; il questo caso la funzione plugin() accetterà più parametri (corrispondenti ad altrettanti nomi di Plugins), separati da una virgola:

$this->load->plugin( array('pluginA', 'pluginB', 'pluginC') );
L’autoload, cioè il caricamento automatico senza la necessità di utilizzare le chiamate, è previsto e possibile anche per i Plugins; nel codice del file presente sul percorso:
application/config/autoload.php
è presente infatti un array, denominato $autoload[‘plugin’] che di default è privo di valori:
$autoload['plugin'] = array();
Per valorizzarlo e determinare l’auto-caricamento dei Plugin, basterà passare ad esso i nomi delle estensioni che si desidera siano sempre disponibili:
$autoload['plugin'] = array('captcha', 'js_calendar');
Un’utile raccolta di Helpers, Plugins e altre estensioni utili per CodeIgniter è presente nell’apposita sezione del sito ufficiale del progetto.

Pubblicitร 
Claudio Garau
Claudio Garau
Web developer, programmatore, Database Administrator, Linux Admin, docente e copywriter specializzato in contenuti sulle tecnologie orientate a Web, mobile, Cybersecurity e Digital Marketing per sviluppatori, PA e imprese.
Articolo precedente
Articolo successivo