Migrazione codice php da 5.6 a 8 postato il 12/10/2022 10:31:30 nel forum programmazione, gdrcd, open source, hosting
Molti siti stanno aggiornando il proprio codice dalle vecchie versione php a quella più recente php8. Il mio sito è costruito su una versione php5.6 oramai obsoleta ma appunto, modificando l'assetto alla versione più recente compaiono innumerevoli errori.
Vorrei poter riuscire a migrare alla nuova versione apportando le dovute modifiche manuali al codice, nella consapevolezza che sarà un lavoro certosino e piuttosto impegnativo.
Perciò volevo chiedere a coloro che hanno già affrontato questa gatta da pelare, se si sono rifatti ad un sito in particolare dove magari c'è un elenco del "prima e dopo" che possa aiutarmi a capire cosa sia cambiato nella scrittura del codice ed intervenire.
Se ci sono soluzioni a riguardo, oppure l'unica cosa da fare è rivolgersi ad una figura competente che si occupi di apportare modifiche/cambiamenti alle pagine del sito. Pensate che un non addetto ai lavori non possa riuscire nell'intento pur impegnandosi a correggere ogni singola pagina?
Purtroppo non ho studiato programmazione, tuttavia è qualcosa che mi affascina e che ho imparato a capire poco a poco nel tempo, tuttavia sono consapevole che certe cose mi siano precluse. In questo caso specifico, notando che altri prima di me sono riusciti nell'intento di migrare da una vecchia versione php ad una più recente, vorrei comprendere il procedimento adottato così da assimilare cosa sia cambiato dal linguaggio precedente all'attuale, in modo da non dover necessariamente delegare qualcuno in caso di problemi o se dovessi intervenire personalmente sulla piattaforma per apportare modifiche.
Grazie a chi spenderà qualche minuto del suo tempo su questo argomento.
Pagine → 1
12/10/2022 11:39:48
Ciao staff shadowland
purtroppo stimare la complessità di una migrazione da PHP5 a PHP8 non è semplice, visto che dipende da come è scritto il codice in questione. Di sicuro posso dirti che non è un'operazione banale e che non c'è una guida che può semplificarti la vita.
Tieni presente innanzitutto che tra la versione 5 e la 8 di PHP è stata rilasciata anche la 7, dunque i cambiamenti sono tanti e importanti.. Ma non è detto che a te servano tutti.
In internet si trovano decine e decine di guide che catalogano i cambiamenti, ma probabilmente ti basterebbe leggere/capire il 3% di questi per effettuare la migrazione del tuo sito. Un ago nel pagliaio.
Comunque se vuoi intraprendere questa strada i riferimenti migliori sono quelli ufficiali del sito di PHP. Tieni però presente che in questo caso non ti viene proposta una guida per la migrazione diretta dal 5 al 8, ma bensì devi considerare il passaggio intermedio al 7.
Ecco comunque i link:
https://www.php.net/manual/en/migration70.php ↗
https://www.php.net/manual/en/migration80.php ↗
Di sicuro questa è la strada più lunga e più affidabile. Il problema è che è rivolta ai developer, quindi devi valutare attentamente se per te sia percorribile.
L'alternativa è quella di fare lo switch alla 8 e risolvere errore dopo errore (warnings compresi) finché non te li levi tutti di torno. Ovviamente questo implica una fase di test certosina perché l'errore potrebbe nascondersi dietro ogni angolo buio.
In entrambi i casi si tratta di intervenire attivamente sul codice, cambiando quello che c'è da cambiare per far funzionare tutto. La mole di interventi, come dicevo all'inizio, dipende da come è scritto il tuo codice.
A me è capitato di migrare progetti in cui ho dovuto risolvere soltanto una manciata di problemi. Oppure situazioni più complesse che mi hanno impegnato giorni e giorni. In un paio di casi estremi è convenuto addirittura riscrivere l'applicazione ex novo 😰
12/10/2022 15:07:11
Proprio ieri ho visto un annuncio di Sailor Land che ha fatto il passaggio: https://www.gdr-online.com/news-gioco.asp?idgioco=6263#33922 ↗
Segnalo al gestore che magari ha alcune dritte sulle difficoltà riscontrate nel passaggio ;)
12/10/2022 16:08:43
Grazie per le dritte! Difatti mi era venuto il dubbio di dover passare prima alla versione 7 e poi alla 8, avevo già dato uno sguardo a quel sito, credo che a questo punto possa essere l'unico riferimento da cui attingere.
Ringrazio ancora per il vostro parere a riguardo, non so se ne verrò a capo data la complessità ma...ci provo XD al massimo ripristino tutto com'era mettendomi l'animo in pace.
13/10/2022 00:28:09
Parlo con il nostro programmatore e cerco di aiutarti ;)
13/10/2022 08:51:03
Grazie! Al momento ho effettuato il passaggio a php 7.3 poiché in php 8 mi restituisce non pochi errori.
13/10/2022 09:36:10
Leggere bene gli errori uno per uno e capire da dove saltano fuori non è un brutto metodo (in genere se cerchi online il testo dell'errore trovi sempre qualcosa).
Comunque, il grosso delle incompatibilità tra le due versioni riguardano cose che probabilmente nelle land non sono usate. Se su php 7.3 la land funziona vuol dire che la modifica più dolorosa (passare da mysql a mysqli) te la sei già lasciata alle spalle.
Una cosa che probabilmente ti sta dando errori è l'uso delle costanti non dichiarate. In PHP le costanti vanno dichiarate come stringhe, quindi racchiuse "tra apici". Prima di PHP 8, se dichiaravi una costante senza racchiuderla tra apici te la faceva passare comunque, mentre ora ti torna errore... quindi magari quel array[pippo] che prima funzionava ora deve essere aggiustato come array["pippo"].
Se hai abilitato i warning, anche accedere a una variabile senza averla dichiarata ti darà errore.
13/10/2022 09:52:17
Sì qualche mese fa ho iniziato a sistemare il codice per svecchiarlo. Grazie per le dritte! :)
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
I dati del generatore di rank sono stati aggiornati!
crossfire ha risposto alla discussione: Gioco investigativo e politico
World of Warship → MMO gratuito con frenetiche battaglie navali ambientate nel ventesimo secolo. Salpa con la tua nave ed affronta i nemici!
delhila ha recensito Shadow Scape
War Thunder: Senrai Maidens x War Thunder!
tatamatilda ha aperto una nuova discussione: Tester offresi/Landa cercasi
Hero Wars → Costruisci la tua squadra di eroi leggendari e domina il campo di battaglia! Strategia, tattica e potenza si scontrano in questo RPG ricco di azione!
Crossout: Halloween è alle porte 👻
World of Warship: King of the Sea XVIII | Iscrizioni
RAID Shadow Legends: Contest di Halloween
Portus: Harry Potter Gioco di Ruolo: DCAO: la lezione è finita e...Tassorosso scappa!
Seconda Era → Vaste terre coperte di ombre e misteri, dove ogni eroe scrive la storia del Mondo di Eidel. Seconda Era, Play By chat
La Città dei Dogi: Dallo sguardo di chi vede il peccato anche nei gab
Le Cronache di Raja Dunia: Aggiornamento - Razza Vhas-Taya
Shadow Scape: ✨ Chiusura momentanea
Black Sails Chronicles: ON - Mastro Corvino
AlterEgo → Scopri AlterEgo GdR: un incredibile universo narrativo in stile medievale fantasy che cresce, muta e vive giorno dopo giorno grazie ai suoi giocatori!
GDR dal Vivo - Scopri il fantastico mondo dei gdr dal vivo. Fai muovere il tuo pg :)
Intervista ToSS - Intervista ai gestori del GdR play by chat ambientato nei Forgotten Realms!
Pvp, ON e OFF - Trattato Sociologico: Gli effetti distruttivi del Pvp e Confusione On e Off
PDI Mappe - Raccolta di oltre 1.000 icone per punti di interesse nelle mappe!
The Bunny Hole - Intervista ai gestori di del GdR erotico The Bunny Hole - PlayBoy New York Edition
WarDrome - Intervista esclusiva a Ricardo Piana, gestore del browser game mmo spaziale WarDrome!
GdR su ForumAttivo - Lista dei giochi di ruolo play by forum sul circuito ForumAttivo