CodeIgniter: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
LRKalle (discussione | contributi)
Nessun oggetto della modifica
m Eliminato i parametri "Ultima versione del software" e "Data di pubblicazione dell'ultima versione" nel template "Software"
 
(26 versioni intermedie di 8 utenti non mostrate)
Riga 1:
{{S|software libero}}
 
{{Software
|Nome = CodeIgniter
|Logo =
|Screenshot =
|Didascalia =
|Sviluppatore = EllisLab, Inc.
|UltimaVersioneBeta = 4.0.0-beta3
|UltimaVersione = 3.1.10
|DataUltimaVersioneBeta = 6 maggio [[2019]]
|DataUltimaVersione = 16 gennaio [[2019]]
|UltimaVersioneBeta = 4.0.0-beta3
|DataUltimaVersioneBeta = 6 maggio [[2019]]
|SistemaOperativo = multipiattaforma
|Genere = [[PHP]]web [[framework]]
|Licenza = Open Software License("OSL") v. 3.0.
|SoftwareLibero = sì
Riga 18 ⟶ 13:
|Lingua =
}}
In [[informatica]] '''CodeIgniter''' è un [[web application framework]] con licenza [[openOpen sourceSoftware License|Open Software License (OSL)]] per lo sviluppo di [[applicazione web|applicazioni web]] dinamiche in linguaggio [[PHP]], basato sul paradigma MVC ([[Model-View-Controller]]), la cui.

La prima versione pubblica è stata distribuita da [[EllisLab]] il 28 febbraio [[2006]] mentre l'ultima versione 3 stabile (3.1.1011) risale al 1610 gennaiosettembre 2019<ref>{{Cita web|url=https://forum.codeigniter.com/thread-72626.html|titolo=CodeIgniter 3.1.10 Released|autore=James Parry (Project Lead)|sito=forum.codeigniter.com|lingua=EN|accesso=2019-07-11}}</ref>. Attualmente la versione più recente stabile è la 4.1.9.
 
== Descrizione ==
CodeIgniter è famoso per la sua velocità se confrontato con altri framework PHP.<ref>{{Cita web |url=http://pr0digy.com/codeigniter/benchmark-update-static-cake-codeigniter-kohana/ |titolo=Benchmark update: Cake vs. CodeIgniter vs. Kohana |editore=Pr0digy.com |data=3 settembre 2008 |accesso=24 luglio 2009 |urlmorto=sì |urlarchivio=https://www.webcitation.org/65oNOo2JB?url=http://pr0digy.com/codeigniter/benchmark-update-static-cake-codeigniter-kohana/ |dataarchivio=29 febbraio 2012 }}</ref>. In un intervento in generale a proposito di framework per PHP in generale, [[Rasmus Lerdorf]], uno dei creatori didel 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".<ref>{{Cita web|url=http://www.sitepoint.com/rasmus-lerdorf-php-frameworks-think-again/ |titolo=Rasmus Lerdorf: PHP Frameworks? Think Again |editore=Sitepoint.com |data=29 agosto 2008 |accesso=3 agosto 2013}}</ref>
 
Il codice sorgente di CodeIgniter vieneè mantenutopubblicato suin [[GitHub]]<ref>[https://github.com/EllisLab/CodeIgniter EllisLab/CodeIgniter · GitHub<!-- Titolo generato automaticamente -->]</ref>, dove è correntemente in[https://github.com/codeigniter4/CodeIgniter4 fase di sviluppodisponibile] la versione 4, certificata open source con [[Open Software License|Open Software License("OSL") v. 3.0]]. come la precedente versione 3. Le versioni precedenti la 3.0 di CodeIgniter sono invece sotto licenza proprietaria Apache/BSD-style open source license.<ref>{{Cita web|url=https://codeigniter.com/user_guide/license.html |titolo=CodeIgniter User Guide Version 2.1.4 : CodeIgniter License Agreement |editore=CodeIgniter.com |accesso=10 luglio 2013}}</ref>
 
EllisLab, società privata sita a [[Bend]] in [[Oregon]], che ha originalmente creato il [[Framework per applicazioni web|framework]], ha annunciato il 6 ottobre [[2014]] che lo sviluppo di Codeigniter sarà continuato dalla [[British Columbia Institute of Technology]]<ref>{{Cita web|url=https://ellislab.com/blog/entry/your-favorite-php-framework-codeigniter-has-a-new-home|titolo=Your Favorite PHP Framework has a new home|accesso=26 dicembre 2017|urlarchivio=https://web.archive.org/web/20141017042021/https://ellislab.com/blog/entry/your-favorite-php-framework-codeigniter-has-a-new-home|dataarchivio=17 ottobre 2014|urlmorto=sì}}</ref>.
 
Il 7 ottobre 2019 i membri e gli sviluppatori più attivi hanno fondato la CodeIgniter Foundation, società [[Non Profit|non profit]] che si occupa di governare e sviluppare il progetto<ref>{{Cita web|url=https://forum.codeigniter.com/showthread.php?tid=74035|titolo=CodeIgniter Foundation in place|autore=Jim Parry|sito=forum.codeigniter.com|lingua=EN|accesso=2019-07-16}}</ref>.
 
Il 15 gennaio 2020 è deceduto Jim Parry, uno dei principali ideatori e sviluppatori del progetto, che continua nelle mani degli altri collaboratori<ref>{{Cita web|url=https://forum.codeigniter.com/thread-75235.html|titolo=Important News about Jim Parry and the Project|sito=forum.codeigniter.com|accesso=2020-02-25}}</ref>.
 
=== Caratteristiche ===
CodeIgniter 3 è compatto (occupa circa 2 [[Megabyte|MegaByte]] di spazio su disco) e veloce nel funzionamento<ref>{{Cita web|url=http://www.tisindia.com/blog/7-best-php-frameworks-2014/|titolo=7 Best PHP Frameworks}}</ref>. La sua installazione richiede generalmente poco tempo e può essere fattasvolta senza usare la riga di comando. Grazie alleobbligatoriamente sue caratteristiche può essere installato facilmente in quasi tutti i sistemi di hosting e con varie versioni di PHP. La versione 3 richiedestrumenti come minimo la versione 5.3.7 di PHP[[Composer (5.6 consigliatasoftware)<ref>{{Cita web|url=https://codeigniter.com/user_guide/general/requirements.html|titolo=Server Requirements — CodeIgniter 3.1.10 documentation|sito=codeigniter.com|accesso=2019-07-11}}</ref>, mentre la nuova versione 4, attualmente in versione beta, richiederà la versione 7 di [[PHPComposer]]. Può funzionare con vario [[BaseGit di dati(software)|databaseGit]]<ref>{{Cita, web|url=https://www.codeigniter.com/user_guide/general/requirements.html?highlight=requirements|titolo=Serversebbene Requirementssiano fornite CodeIgniteristruzioni 3.1.10per documentation|sito=wwwusarli.codeigniter.com|accesso=2019-07-11}}</ref>:
 
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)<ref>{{Cita web|url=https://codeigniter.com/user_guide/general/requirements.html|titolo=Server Requirements — CodeIgniter 3.1.10 documentation|sito=codeigniter.com|accesso=2019-07-11|urlarchivio=https://web.archive.org/web/20190711002349/https://codeigniter.com/user_guide/general/requirements.html|dataarchivio=11 luglio 2019|urlmorto=sì}}</ref>, mentre la nuova versione 4, attualmente in versione beta, richiederà come minimo la versione 7.2 (o successive)<ref>{{Cita web|url=https://codeigniter4.github.io/CodeIgniter4/intro/requirements.html|titolo=Server Requirements — CodeIgniter4 4.0.0-beta.3 documentation|sito=codeigniter4.github.io|lingua=EN|accesso=2019-07-23}}</ref>.
* [[MySQL]] v.5.1+ con driver mysqli e pdo
 
CodeIgniter può interfacciare, per mezzo di driver, vari diffusi [[Base di dati|database]]<ref>{{Cita web|url=https://codeigniter.com/user_guide/intro/requirements.html|titolo=Server Requirements documentation|sito=codeigniter.com|accesso=2019-07-11}}</ref>:
 
* [[MySQL]] v.5.1+ con driver mysqli e pdo
* [[Oracle Database|Oracle]] con driver oci8 e pdo
* [[PostgreSQL]] con driver postsgre e pdo
Riga 40 ⟶ 44:
* [[ODBC]] con driver odbc e pdo
 
Non dispone di un motore di un 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 [[HTML5|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]]<ref>{{Cita web|url=http://www.coolphptools.com/codeigniter-smarty|titolo=CodeIgniter + Smarty, Perfect Together}}</ref> e [[Twig]].

CodeIgniter Prevedeprevede il caching sia delle pagine web generate, sia del database e meccanismi di protezione contro le mimacceminacce piàpiù comuni, come per esempio la [[SQL injection]], durante l'immissione di dati nei [[form]]<ref>{{Cita web|url=http://www.mindfiresolutions.com/blog/2018/03/pros-cons-codeigniter-framework/|titolo=Pros and Cons of CodeIgniter Framework|autore=Mindfire Solutions|sito=Blogs @ Mindfire Solutions|data=2018-03-22|lingua=en-US|accesso=2019-07-11}}</ref>.
 
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 prossima versione 4), una certa macchinosità nel test delle unit e un numero ridotto di librerie integrate<ref>{{Cita web|url=https://coderseye.com/best-php-frameworks-for-web-developers/|titolo=11 Best Frameworks Review|accesso=26 dicembre 2017|dataarchivio=26 dicembre 2017|urlarchivio=https://web.archive.org/web/20171226130252/https://coderseye.com/best-php-frameworks-for-web-developers/|urlmorto=sì}}</ref>. Quest'ultimo punto determina però il vantaggio delle ridotte dimensioni di installazione del [[Framework per applicazioni web|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 ===
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.
 
=== Codeigniter 4 ===
La versione 4 rilasciata il 24 febbraio 2020<ref>{{Cita web|url=https://forum.codeigniter.com/thread-75581.html|titolo=CodeIgniter 4.0 is here!|sito=forum.codeigniter.com|accesso=2020-02-25}}</ref> è stata riscritta completamente e non è compatibile con la precedente versione 3. Questa funzionava con [[PHP]] versione 5.6 o successive, mentre la nuova versione è stata realizzata per [[PHP]] versione 7.2 o successive.
 
La struttura di un sito sviluppato con Codeigniter 4 è stata modificata e ora è prevista una cartella ''public'' che rappresenta la root del sito web. Una scelta dettata principalmente da motivi di sicurezza, dato che in questo modo è possibile isolare e "nascondere" più facilmente agli utenti le cartelle ''system'' e ''application'' dove è contenuto il codice vero e proprio. Inoltre ora è prevista una cartella ''writable'' con permessi di scrittura preposta a conservare i file di lavoro generati dall'applicativo, per esempio la cache delle pagine, ma che non è accessibile tramite [[Uniform Resource Locator|URL]].
 
Codeigniter 4, come la precedente versione, rimane basato sul paradigma MVC (model-view-controller). Mentre le classi controller sono indispensabili al funzionamento del software sviluppato, le classi per definire modelli e view sono opzionali. Resta comunque possibile modificare autonomamente con alcuni accorgimenti il funzionamento del framework per adottare il paradigma HVMC (View-Model-Controller Gerarchico) in modo da gestire a gruppi modulari Controller, Modelli e View in subdirectory fisiche<ref>{{Cita web|url=https://imrecsige.dev/garden/creating-modular-hmvc-applications-with-codeigniter-4/|titolo=Creating modular HMVC applications with Codeigniter 4|autore=Imre Csige|sito=Imre Csige's Digital Garden|lingua=en|accesso=2022-01-05}}</ref><ref>{{Cita pubblicazione|nome=Mufid|cognome=Jamaluddin|data=2022-01-04|titolo=Codeigniter4-HMVC|accesso=2022-01-05|url=https://github.com/MufidJamaluddin/Codeigniter4-HMVC}}</ref>.
 
La gestione dei database è quasi identica, anche se sono cambiati alcuni dei connettori supportati e la sintassi dell'ORM. Il caricamento di librerie, modelli e altri oggetti è uguale a prima ma è possibile specificare nei file di configurazione, come nei file del codice, i percorsi di localizzazione in formato PSR4. Inoltre sono stati integrati in Codeigniter 4 nuovi strumenti di test e debug, come per esempio KINT<ref>{{Cita pubblicazione|data=2020-02-25|titolo=kint-php/kint|editore=kint-php|accesso=2020-02-25|url=https://github.com/kint-php/kint}}</ref>.
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 prossima versione 4), una certa macchinosità nel test delle unit e un numero ridotto di librerie integrate<ref>{{Cita web|url=https://coderseye.com/best-php-frameworks-for-web-developers/|titolo=11 Best Frameworks Review}}</ref>. 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à.
 
== Note ==
Riga 49 ⟶ 79:
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{cita web|https://www.codeigniter.com/|Sito web|lingua=en}}
*[https://forum.codeigniter.com/forum-28.html Forum sviluppatori Codeigniter]
 
{{PHP}}
{{Framework per applicazioni web}}