CodeIgniter: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
LRKalle (discussione | contributi)
m Aggiornamento ultima versione ufficiale
m Eliminato i parametri "Ultima versione del software" e "Data di pubblicazione dell'ultima versione" nel template "Software"
 
(19 versioni intermedie di 7 utenti non mostrate)
Riga 1:
{{S|software libero}}
 
{{Software
|Nome = CodeIgniter
|Logo =
|Screenshot =
|Didascalia =
|Sviluppatore = EllisLab, Inc.
|UltimaVersioneBeta = 4.0.0-beta4
|UltimaVersione = 3.1.11
|DataUltimaVersioneBeta = 25 luglio [[2019]]
|DataUltimaVersione = 19 settembre [[2019]]
|UltimaVersioneBeta = 4.0.0-beta4
|DataUltimaVersioneBeta = 25 luglio [[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 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>. AttualemnteAttualmente èla inversione fasepiù direcente sviluppostabile (beta)è la versione 4.01.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 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".<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 è pubblicato in [[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 svolta senza usare la riga di comando né obbligatoriamente strumenti come [[Composer (software)|Composer]] o [[Git (software)|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)<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>.
 
CodeIgniter può interfacciare, per mezzo di driver, vari diffusi [[Base di dati|database]]<ref>{{Cita web|url=https://www.codeigniter.com/user_guide/generalintro/requirements.html?highlight=requirements|titolo=Server Requirements — CodeIgniter 3.1.10 documentation|sito=www.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 46 ⟶ 44:
* [[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 [[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 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]]<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 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 ===
Riga 67 ⟶ 65:
* 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 ===
<br />
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>.
 
== Note ==
Riga 74 ⟶ 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}}