ugrás a tartalomhoz

PHP visszafelé kompatibilitással?

Hojtsy Gábor · 2004. Jún. 2. (Sze), 14.30
Egyre több függvény kerül be a PHP-be, hiszen új igények és megközelítések merülnek fel, a régi funkcionalitást pedig illik megtartani. Ezért előfordulhat, hogy a kényelmes újdonságok használata miatt olyan kódot fejlesztünk, amely visszafelé nem kompatibilis, azaz régebbi PHP verziókon nem futhat. Saját megoldást is kiötölhetünk egyedi esetekben, vagy elővehetjük a PEAR PHP_Compat csomagját.

Én magam helyi gyógymódot szoktam alkalmazni. Az új függvények sokszor átláthatóbb kód írását teszik lehetővé. Ilyen kényelmes eszköz például a file_put_contents(), ami csak PHP 5.0.0-tól kezdve érhető el stabil PHP verzióban. Jellemző probléma, hogy korábbi PHP verzión is futnia kellene a kódnak. Ilyenkor a következő megoldással lehet élni:

<?php
if (!function_exists("file_put_contents")) {
  function file_put_contents($filename, $content) {
    $handle = fopen($filename, 'w');
    fwrite($handle, $content);
    fclose($handle);
  }
}
?>
Hibakezeléssel persze érdemes lehet még fűszerezni a fenti kódot, a lényeg azonban így nyilvánvalóbb. Minél több ilyen függvényt akarunk használni, annál több saját kódot kell felvennünk, miközben figyelnünk kell arra is, hogy ezek a visszafelé kompatibilitást biztosító kódok mindig be legyenek töltve a forrás elején.

Ezen a helyzeten segít a PEAR új PHP_Compat csomagja melynek tegnap jelent meg az 1.0.0RC2-es béta állapotú verziója. Olyan függvényeket definiál, mint az array_combine(), az str_split(), a bemutatott file_put_contents(), stb, ráadásul néhány konstanshoz is elérést biztosít.