Domanda

Quali sono alcuni buoni passi da seguire per la migrazione da PHP4 a PHP5.Quali sono alcuni tipi di codice che sono propensi a rompere?

È stato utile?

Soluzione

Anche io una volta lavorato su un'app che utilizzate PHP4 il supporto di XML piuttosto pesantemente, e avrebbe richiesto un bel po ' di lavoro per passare a PHP5.

Uno degli altri significativi cambiamenti stavo guardando il tempo è stato il cambio di gestione predefinita di parametri di una funzione.In PHP4 se ricordo bene, erano di passaggio per copia a meno che non specificato altrimenti, ma in PHP5 è cambiato per il passaggio per riferimento per impostazione predefinita.In codice ben scritto, che probabilmente non farà una grande differenza per voi, ma si può certamente causare problemi.

Penso che un'altra cosa che ho cambiato è che gli oggetti non sono più ammessi a sovrascrivere il loro 'questo' campo.Direi che è stata una pessima idea per cominciare (e penso che non sia stata una funzionalità intenzionale in PHP4), ma sicuramente ho trovato un paio di parti del nostro sistema che si basava su di esso.

Spero che alcuni dei che aiuta.

Altri suggerimenti

Il miglior consiglio che ti posso dare tutti coloro che lavorano con PHP4 è questo:

error_reporting( E_ALL );

Praticamente vi dirà esattamente che cosa dovete fare.

Abbiamo avuto un'app che si basa pesantemente su PHP 4 DOM XML funzioni e che ha richiesto un sacco di riattrezzamento di cambiare PHP 5.

Al di là che la maggior parte dei cambiamenti sono stati miglioramenti per cose come la gestione dell'errore (per sfruttare eccezioni) e di Classi PHP.

OOP è una delle più grandi differenze.Non si rompe come il PHP4 e PHP5 OOP stili sono intercambiabili, ma mi piacerebbe consiglia di prendere vantaggio di PHP5 nuovo OOP stili.Non è una quantità enorme di lavoro per convertire le classi già esistenti a PHP5 e non darà qualche extra magico metodi che possono contribuire a risolvere alcuni hack (ricordo di avere vicino inutili __toString metodo equivalente nella maggior parte delle classi).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top