CodeIgniter

Da Wikipedia, l'enciclopedia libera.
Jump to navigation Jump to search
CodeIgniter
software
Logo
GenerePHP framework (non in lista)
SviluppatoreEllisLab, Inc.
Ultima versione3.1.10 (16 gennaio 2019)
Ultima beta4.0.0-beta4 (25 luglio 2019)
Sistema operativoMultipiattaforma
LinguaggioPHP
LicenzaOpen Software License("OSL") v. 3.0.
(licenza libera)
Sito web

In informatica CodeIgniter è un web application framework con licenza open source per lo sviluppo di applicazioni web in PHP, basato sul paradigma MVC (Model-View-Controller). La prima versione pubblica è stata distribuita da EllisLab il 28 febbraio 2006 mentre l'ultima versione stabile (3.1.10) risale al 16 gennaio 2019[1]. Attualemnte è in fase di sviluppo (beta) la versione 4.0.

Descrizione[modifica | modifica wikitesto]

CodeIgniter è famoso per la sua velocità se confrontato con altri framework PHP.[2]. In un intervento a proposito di framework per PHP in generale, Rasmus Lerdorf, uno dei creatori del linguaggio PHP, parlando al frOSCon nell'agosto 2008, ha dichiarato che è uno dei suoi framework preferiti "perché è veloce, leggero ed infine è proprio come dev'essere un framework".[3]

Il codice sorgente di CodeIgniter è pubblicato in GitHub[4], dove è correntemente in fase di sviluppo la versione 4, certificata open source con Open Software License("OSL") v. 3.0. Le versioni precedenti la 3.0 di CodeIgniter sono invece sotto licenza proprietaria Apache/BSD-style open source license.[5]

EllisLab, società privata sita a Bend in Oregon, che ha originalmente creato il framework, ha annunciato il 6 ottobre 2014 che lo sviluppo di Codeigniter sarà continuato dalla British Columbia Institute of Technology[6].

Il 7 ottobre 2019 i membri e gli sviluppatori più attivi hanno fondato la CodeIgniter Foundation, società non profit che si occupa di governare e sviluppare il progetto[7].

Caratteristiche[modifica | modifica wikitesto]

CodeIgniter 3 è compatto (occupa circa 2 MegaByte di spazio su disco) e veloce nel funzionamento[8]. La sua installazione richiede generalmente poco tempo e può essere svolta senza usare la riga di comando né obbligatoriamente strumenti come Composer o Git, sebbene siano fornite istruzioni per usarli.

Grazie alle sue caratteristiche può essere installato facilmente in quasi tutti i sistemi di hosting e con varie versioni di PHP. La versione 3 richiede come minimo PHP versione 5.3.7 (5.6 consigliata)[9], mentre la nuova versione 4, attualmente in versione beta, richiederà come minimo la versione 7.2 (o successive)[10].

CodeIgniter può interfacciare, per mezzo di driver, vari diffusi database[11]:

  • MySQL v.5.1+ con driver mysqli e pdo
  • Oracle con driver oci8 e pdo
  • PostgreSQL con driver postsgre e pdo
  • Microsoft SQL con driver mssql, sqlsrv (dalla versione 2005) e pdo
  • SQLite con driver sqlite (versione 2), sqlite3 (versione 3), e pdo
  • CUBRID con driver curbird e pdo
  • Interbase/Firebird con driver ibase e pdo
  • ODBC con driver odbc e pdo

Non dispone di un motore di templating integrato, sebbene la scrittura del codice dei file PHP di template possa essere semplificato dall'uso di librerie di funzioni integrate che generano direttamente codice HTML. Inoltre, grazie al vasto gruppo di utenti e librerie di terze parti può essere interfacciato con motori di templating per PHP esterni, come per esempio i popolari Smarty PHP[12] e Twig.

CodeIgniter prevede il caching sia delle pagine web generate, sia del database e meccanismi di protezione contro le minacce più comuni, come per esempio la SQL injection, durante l'immissione di dati nei form[13].

Tra i punti considerabili deboli del framework versione 3.0, l'assenza dei namespace (che però consente di aumentare la velocità di esecuzione del codice e che sono previsti nella versione 4), una certa macchinosità nel test delle unit e un numero ridotto di librerie integrate[14]. Quest'ultimo punto determina però il vantaggio delle ridotte dimensioni di installazione del framework, mentre i programmatori possono reperire librerie di terze parti con licenza open source e integrarle con poco sforzo, oppure svilupparne di proprie con relativa facilità data la struttura estendibile di CodeIgniter.

Come funziona[modifica | modifica wikitesto]

CodeIgniter è un framework MVC e funziona come tale.

Quando un utente richiede una risorsa al server dove opera il framework, l'interpretazione viene svolta da un controller, costituito da righe di software, che risponde fornendo un risultato comprensibile dal browser dell'utente grazie al codice di una vista o view. Se necessario il controller provvede a recuperare dati per soddisfare la richiesta, per esempio da file XML o da un server database. L'associazione tra la richiesta da parte del browser e il codice del controller viene eseguita in CodeIgniter attraverso la mappatura degli indirizzi URL a specifiche sezioni di codice. Per esempio la richiesta:

www.sitocodedigniter.test/libro/capitolo/1

può essere di regola interpretata da CodeIgniter invocando un controller che userà in una classe di nome "libro" la view chiamata "capitolo" e passando a questa il parametro numerico "1". Il risultato dell'elaborazione della view sarà in ogni caso una pagina comprensibile dal browser che ha eseguito la richiesta, per esempio, in questo caso, dopo avere recuperato da un database le informazioni relative al capitolo 1 ed averle formattate secondo lo standard HTML usando un modello di pagina preconfezionato.

Riassumendo le componenti del modello MVC di CodeIgniter:

  • I modelli gestiscono i dati necessari all'applicazione, nel contempo consentono di applicare regole speciali al trattamento delle informazioni necessarie
  • Le viste sono file di regola semplici, ovvero senza molto codice, che si occupano di presentare all'utente tramite il browser i risultati dell'elaborazione del software
  • I controller sono il codice di programmazione che si occupa di collegare i due elementi precedenti, gestendo il flusso di informazioni tra la vista e i dati gestiti dall'applicazione, per esempio input dell'utente e database.


Note[modifica | modifica wikitesto]

  1. ^ (EN) James Parry (Project Lead), CodeIgniter 3.1.10 Released, su forum.codeigniter.com. URL consultato l'11 luglio 2019.
  2. ^ Benchmark update: Cake vs. CodeIgniter vs. Kohana, Pr0digy.com, 3 settembre 2008. URL consultato il 24 luglio 2009 (archiviato dall'url originale il 29 febbraio 2012).
  3. ^ Rasmus Lerdorf: PHP Frameworks? Think Again, Sitepoint.com, 29 agosto 2008. URL consultato il 3 agosto 2013.
  4. ^ EllisLab/CodeIgniter · GitHub
  5. ^ CodeIgniter User Guide Version 2.1.4 : CodeIgniter License Agreement, CodeIgniter.com. URL consultato il 10 luglio 2013.
  6. ^ Your Favorite PHP Framework has a new home, su ellislab.com. URL consultato il 26 dicembre 2017 (archiviato dall'url originale il 17 ottobre 2014).
  7. ^ (EN) Jim Parry, CodeIgniter Foundation in place, su forum.codeigniter.com. URL consultato il 16 luglio 2019.
  8. ^ 7 Best PHP Frameworks, su tisindia.com.
  9. ^ Server Requirements — CodeIgniter 3.1.10 documentation, su codeigniter.com. URL consultato l'11 luglio 2019.
  10. ^ (EN) Server Requirements — CodeIgniter4 4.0.0-beta.3 documentation, su codeigniter4.github.io. URL consultato il 23 luglio 2019.
  11. ^ Server Requirements — CodeIgniter 3.1.10 documentation, su www.codeigniter.com. URL consultato l'11 luglio 2019.
  12. ^ CodeIgniter + Smarty, Perfect Together, su coolphptools.com.
  13. ^ (EN) Mindfire Solutions, Pros and Cons of CodeIgniter Framework, su Blogs @ Mindfire Solutions, 22 marzo 2018. URL consultato l'11 luglio 2019.
  14. ^ 11 Best Frameworks Review, su coderseye.com.

Collegamenti esterni[modifica | modifica wikitesto]

Informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica