AGGIORNAMENTO E UPGRADE · CODEIGNITER

CodeIgniter su PHP 8.
Da CodeIgniter 3 al 4.

Portiamo le applicazioni CodeIgniter 2 e 3 su un PHP supportato e le convertiamo a CodeIgniter 4, che è una riscrittura del framework, conservando logica di business e database.

Per chi ha un gestionale o un sito su CodeIgniter fermo su PHP 5 o 7 e non sa se aggiornare il ramo 3 o passare al 4. Stimiamo il lavoro, proteggiamo la produzione e migriamo per parti.

PERCORSO DI UPGRADE

Dal ramo che hai.
Al ramo supportato.

CodeIgniter 2 si porta prima sull’ultima versione del ramo 3, che è stata adattata a PHP 8.0 e 8.1. Il passaggio a CodeIgniter 4 è una conversione dell’applicazione, perché il framework è stato riscritto e non è retrocompatibile.

  1. 01CodeIgniter 2.xPHP 5.x

    Ramo storico, da allineare prima al 3.1 per cartelle, sessioni e librerie.

  2. 02CodeIgniter 3.1.13da PHP 5.3.7, adattato a 8.1

    Ultimo rilascio del ramo 3, di marzo 2022, senza data di fine annunciata.

  3. 03CodeIgniter 4.0 – 4.4da PHP 7.2, poi 7.4

    Riscrittura con namespace, cartella public e PSR-4. Tappa utile per chi resta su PHP 7.

  4. 04CodeIgniter 4.7PHP 8.2 o superiore

    Ramo corrente, con aggiornamenti minori documentati versione per versione.

VERSIONI E REQUISITI PHP

Versioni e PHP.
Ramo per ramo.

Il requisito minimo di PHP di CodeIgniter 4 è cresciuto con le versioni minori. Lo stato è quello di novembre 2026.

VersionePHP richiestoStato a novembre 2026
CodeIgniter 2.xPHP 5.xRamo storico, fuori sviluppo
CodeIgniter 3.1.13 (marzo 2022)Da PHP 5.3.7, consigliato 5.6 o superioreNessun rilascio dal 2022, nessuna data di fine ufficiale
CodeIgniter 4.0 (febbraio 2020)PHP 7.2 o superioreSuperato dalle versioni successive
CodeIgniter 4.2 (giugno 2022)PHP 7.4 o superioreSuperato dalle versioni successive
CodeIgniter 4.5 (aprile 2024)PHP 8.1 o superioreSuperato dalle versioni successive
CodeIgniter 4.7 (febbraio 2026)PHP 8.2 o superioreRamo corrente, ultima versione 4.7.6

Fonti: Requisiti di CodeIgniter 4 · Requisiti di CodeIgniter 3 · Da CodeIgniter 3 a CodeIgniter 4. La matrice dei rami di PHP con le distribuzioni Linux è nella pagina Versioni PHP.

COSA TROVIAMO DI SOLITO

Cosa blocca l’upgrade.
E come lo sblocchiamo.

La guida ufficiale invita a pensare il passaggio a CodeIgniter 4 come una conversione dell’applicazione. Questi sono i punti che richiedono più lavoro.

Il 4 non è retrocompatibile

CodeIgniter 4 è una riscrittura e non esiste uno strumento ufficiale di conversione automatica. Partiamo da un’installazione pulita e portiamo controller, modelli e viste un gruppo alla volta.

Superoggetto e caricamento

Nel ramo 3 tutto passa da $this->load e dal superoggetto del controller. Nel 4 si usano namespace, autoload PSR-4, Services e Factories, quindi rivediamo ogni punto in cui l’applicazione carica librerie e modelli.

Librerie e helper rimossi

Nel 4 mancano librerie come Calendaring, FTP, Shopping Cart, XML-RPC e Zip, e alcuni helper sono stati rimossi o accorpati. Per ognuno scegliamo un pacchetto Composer mantenuto o una sostituzione nel codice.

Hook, MY_ e core estesi

Gli hook diventano Events e filtri dei controller, e spariscono il prefisso MY_ e la cartella core. Le personalizzazioni del framework vanno riscritte come servizi registrati in app/Config/Services.php.

Ramo 3 sui PHP più recenti

La 3.1.12 ha adattato il framework a PHP 8.0 e 8.1, ma il codice applicativo spesso non segue. Sulle versioni successive di PHP emergono deprecazioni come quelle sulle proprietà dinamiche, che correggiamo prima del cambio.

IL METODO

Il nostro intervento.
Passo dopo passo.

Se la migrazione richiede tempo, nel frattempo teniamo protetto il PHP in uso con il backport delle patch di sicurezza.

  1. 01INVENTARIO

    Inventario e matrice

    Censiamo controller, modelli, librerie, helper e personalizzazioni del core. Ne ricaviamo una matrice di compatibilità e la scelta tra aggiornare il ramo 3 o convertire al 4.

  2. 02STAGING

    Ambiente di prova reale

    Prepariamo un ambiente di prova con l’applicazione reale e una copia dei dati. Lì correggiamo il codice per PHP 8 con PHPCompatibility, PHPStan e Rector prima di toccare il framework.

  3. 03UPGRADE

    Conversione per parti

    Convertiamo una sezione alla volta, coprendo con test i percorsi critici. Quando serve facciamo convivere il ramo 3 e il 4 sullo stesso dominio e sullo stesso database.

  4. 04RILASCIO

    Rilascio e ponte di sicurezza

    Rilasciamo con Ansible e un piano di rollback provato. Se la conversione richiede tempo, il backport delle patch di sicurezza protegge il PHP in uso nel frattempo.

DOMANDE FREQUENTI

Prima di iniziare.

Le domande che ci fanno più spesso su CodeIgniter e PHP.

CodeIgniter 3 è ancora supportato?

Il progetto non ha annunciato una data di fine ufficiale per il ramo 3. L’ultimo rilascio è la 3.1.13 di marzo 2022. Tutto lo sviluppo attivo è su CodeIgniter 4. Lo consideriamo un ramo da cui pianificare l’uscita.

Basta aggiornare CodeIgniter 3 per arrivare a PHP 8?

La 3.1.12 ha adattato il framework a PHP 8.0 e 8.1, quindi per un primo passo può bastare. Il codice applicativo va comunque corretto per le funzioni rimosse e le deprecazioni. Per arrivare ai PHP più recenti con un framework mantenuto serve CodeIgniter 4.

Quanto costa passare da CodeIgniter 3 a CodeIgniter 4?

Dipende da quanto l’applicazione usa librerie, helper e personalizzazioni del core. Lo stimiamo dopo l’inventario, sezione per sezione. Logica di business e schema del database di solito si conservano.

IL PROSSIMO PASSO

Aggiorniamo
il tuo progetto.

Indicaci versione della piattaforma, versione di PHP e sistema operativo. Ti risponderemo con una prima valutazione del percorso di upgrade e di cosa serve per arrivarci.

Richiedi una valutazione
PHP LEGACY · MANAGED SERVER S.R.L.info@phplegacy.it +39 02 5656 9681

Lunedì – venerdì · 09:30 – 19:30

Urgenza in corso? Reperibilità H24
+39 340 985 4556 ↗