Migracja do PHP 5.6

Każdy kto posiada i opiekuje się swoją stroną internetową wie, że co jakiś czas na serwerze administratorzy muszą aktualizować oprogramowanie, aby serwer był bezpieczny oraz aby naprawić luki bezpieczeństwa czy też inne błędy w funkcjonowaniu. Takie zamiany wiążą się z tym, że musimy cały czas dbać o nasze strony i serwisy aby zapewnić im nieprzerwane działanie.

Poniżej przedstawiam kilka sytuacji z którymi osobiście się spotkałem oraz rozwiązania jakie wprowadziłem aby te problemy rozwiązać.

Funkcja ereg

Najlepiej przedstawić na przykładach:

ereg(’\.([a-z]*$)’, $value1, $value2);

zmieniamy na:

preg_match(’/\.([a-z]*$)/’, $value1, $value2);

Tagi otwierające PHP

Aby zapobiec problemom w przenoszeniu witryn pomiędzy platformami, przestał być wspierany krótki tag otwierający dla skryptów.

Tagi <??>

zmieniamy na:

<?php  ?>

Funkcje rozpoczynające się od mysql_

Funkcje służące do łączenia się z bazą danych MySQL zaczynające się od: „mysql_” … zostały zastąpione bardziej wydajnymi zaczynającymi się na: „mysqli_”.

Usunięcie modułu safemode

Został usunięty tryb safe mod teraz teraz są jednolite ustawienia.

Usunięcie opcji register globals

Usunięte zostały zmienne typu register globals. Należy korzystać z predyfiniowanych zmiennych globalnych np: $_POST, $_GET, $GLOBALS, $_SERVER, $_FILES itp.

Pozostałe funkcje / opcje

  • Usunięcie mbstring.script_encoding – należy używać zend.script_encoding
  • call-time przekazywany przez referencje został usunięty
  • zasoby GMP są obiektami
  • stream wrappers dokonują weryfikacji certyfikatu i nazwy hosta podczas używania SSL/TLS
  • dalsze poprawki wydajności i bezpieczeństwa

Podsumowanie

Zmiany nie są duże ale w wielu przypadkach bardzo znaczące i niekiedy trzeba wykonać sporo pracy aby strony internetowe działały nieprzerwanie.

Warto też wspomnieć iż w wersji PHP która już jest w wersji rozwojowej nie będzie obsługiwała już funkcji, które były już przestarzałe w poprzednich wersjach PHP.

Przedstawiłem różnice z którymi ja sam się spotkałem i które poprawiałem w związku ze zmianami wersji PHP. Jeśli chcesz poznać wszystkie możliwe szczegóły i różnice to możesz je przeczytać pod adresem:
http://php.net/manual/en/migration56.php