Site icon GIGASERVER.CZ / Znalostní báze

Jaké jsou rozdíly ve verzích PHP 5.3. a PHP 5.5.?


Proč PHP aktualizujeme?

PHP se neustále vyvíjí a vycházejí nová verze a postupně je ukončena podpora verzím starým. Vývoj verze PHP 5.3.3, kterou jsme využívali byl ukončen v červenci 2013, do července 2014 pak vycházely alespoň bezpečnostní aktualizace. Tyto aktualizace již nebudou ve druhé polovině roku 2014 dostupné a PHP 5.3.3 již nebude podporováno a bezpečnostní chyby již nebudou opravovány. Zejména z důvodu zachování vysoké bezpečnosti serverů je tak nutné přejít na novější podporovanou verzi PHP. Mimo zachování bezpečnosti zajistíme aktualizací PHP i podporu nových aplikací, které nejsou na starších verzích PHP funkční.

Hlavní změny ve verzích

Funkce, direktivy a rozšíření, které již nejsou s verzí PHP 5.5. kompatibilní.

Níže uvedená slova jsou od verze PHP 5.4. rezervována a tudíž nemohou být použita jako názvy funkcí, tříd, apod.

V budoucích verzích PHP přestanout být podporovány funkce:

Nové vlastnosti, funkce, třídy, metody, atd.

PHP 5.5. a open source redakční systémy

Základní instalace open source redakčních systému (Joomla, WordPress, Drupal, atp.) by při provozu na nové verzi PHP neměly vykazovat chyby. Samozřejmě také záleží na doplňcích a šablonách, pokud využívájí výše uvedené direktivy nebo funkce (zejména magic_quotes_gpc a register_globals), je nutné je nahradit, případně aktualizovat. V každém případě doporučujeme provedení aktualizace redakčních systému na nejnovější verze, které jsou plně kompatibilní s verzí PHP 5.5. Mimo zajištění kompatibility se tím i zvýší bezpečnost jednotlivých instalací redakčních systémů.

Známé problémy při provozu starých verzí redakčních systémů na PHP 5.5.

Obecné:

Příklad:

Warning: Creating default object from empty value in /www/novephp.cz/novephp.cz/wp-admin/admin-functions.php on line 1617.

Ve skriptu admin-functions.php je na řádku 1617 $ct->title = $themes[$current_theme][‘Title’];, chybu opravíme tak, že před tento řádek přidáme “$ct = new StdClass;” (bez uvozovek). Po uložení souboru zpět na FTP se chyba přestane zobrazovat.

Další možnost řešení je vypnutí zobrazování chyb. To lze nastavit v administraci služeb v sekci “Ostatní”. Zde stačí hodnotu nastavení error_reporting přepnout na “Vypnuto”.

Joomla 1.5.x

Níže uvedené v PHP se mohou objevit u některých zastaralých verzí.

V tomto případě stačí otevřít soubor libraries/joomla/filter/(filter)input.php a změnit zdrojový kód

// Convert decimal
$source = preg_replace(‘/&#(\d+);/me’, “utf8_encode(chr(\\1))”, $source); // decimal notation

// Convert hex
$source = preg_replace(‘/&#x([a-f0-9]+);/mei’, “utf8_encode(chr(0x\\1))”, $source); // hex notation

na:

$source = preg_replace_callback(‘/&#x(\d+);/mi’, function($m){return utf8_encode(chr(‘0x’.$m[1]));}, $source); // decimal notation
$source = preg_replace_callback(‘/&#x([a-f0-9]+);/mi’, function($m){return utf8_encode(chr(‘0x’.$m[1]));}, $source); // hex notation

Warning: Creating default object from empty value in administrator/components/com_phocagallery/libraries/phocagallery/image/imagefront.php on line 370.

Je nutné na řádku 370 změnit:

$fileThumbnail->abs = ”;

na

$fileThumbnail = new StdClass();

WordPress

Samotný wordpress by neměl mít s kompatibilitou zásadní problémy. Potíže však mohou způsobit nekompatibilní pluginy a šablony. Pokud toto nastane, je nutné identifikovat plugin, který vykazuje chyby a provést jeho aktualizaci. Obecně doporučujeme udržování jádra redakčního systému, pluginů i šablon v nejnovějších verzích.

Drupal

Drupal 7 by měl na PHP 5.5. běžet v pořádku. Starší verze Drupal 6 může vykazovat chyby. Doporučujeme aktualizaci na nějnovější verzi Drupal 7.x.

CMS Made Simple

Verze 1.7. a novější by měly fungovat v pořádku. Doporčujeme však použití verze 1.11.10, která je s PHP 5.5. plně kompatibilní.

Prestashop

Verze 1.5. a novější by neměly vykazovat žádné chyby. Starší verze 1.4.x doporučujeme aktualizovat minimálně na 1.5.x, ideálně na 1.6.

OpenCart

Verze 1.5. a novější by neměly vykazovat chyby.

osCommerce

osCommerce je kompatibilní s PHP 5.5. od verze 2.3.3.0.

Magento

Magento Community Editions 1.6.x, 1.7.x a 1.8.x mohou vykazovat chyby. Pokud se tak stane, je nutné nainstalovat patch, který naleznete zde: www.magentocommerce.com/download (sekce Magento Community Edition Patches).

Exit mobile version