PHP 5.2.4RC1

Pojawiła się nowa wersja języka PHP, nosząca numer 5.2.4RC1; końcówka RC1 oznacza jedno z ostatnich wydań próbnych (release candidate) przed oficjalną premierą PHP 5.2.4. Informacja o nim ukazała się najpierw na blogu jednego z czołowych twórców PHP – Ilii Alshanetskiego (http://www.ilia.ws).

W PHP 5.2.4RC1 poprawiono wbudowaną obsługę baz danych Oracle (oci8) i PostgreSQL-a (PG), szyfrowanie transmisji HTTP przy użyciu SSL-a, wysyłanie poczty elektronicznej za pomocą funkcji mail() czy wyświetlanie błędów; w ostatnim przypadku dodano obsługę STDERR jako zasobu, do którego mają być wysyłane komunikaty. Co więcej, w wypadku wystąpienia błędu aplikacji WWW, PHP będzie wyświetlał komunikat HTTP 500, zamiast ukazującej się dotychczas pustej strony. Pojawiło się też parę updejtów: standardowo dołączane do PHP rozszerzenie PCRE (obsługa wyrażeń regularnych w stylu Perla) zostało zaktualizowane do wersji 7.2, a baza stref czasowych – do 2007.6. Wprowadzono też długo oczekiwaną możliwość wywoływania statycznych metod i atrybutów klas przy użyciu zmiennych, np. TestClass::$myDefinedMethod oraz rozbudowano funkcjonalność phpinfo() o wyświetlanie parametrów rozszerzenia ReflectionExtension.

Z najpoważniejszych usterek, które usunięto, warto wymienić MOPB-03-2007 – błąd, który powodował przepełnienie stosu (ang. stack overflow) podczas rekurencyjnego wywoływania funkcji i mógł doprowadzić do nagłego przerwania pracy parsera PHP. Podobny problem dotykał funkcji chunk_split(), która dzieli łańcuch tekstowy na mniejsze. Kolejnymi poważnymi błędami podobnego rodzaju były: integer overflow w funkcji strspn() i strcspn(), floating point exception w wordwrap(), segmentation fault przy użyciu open_json() oraz wyciek pamięci (ang. memory leak) w ldap_first_attribute i ldap_next_attribute. Usunięto również dwie luki bezpieczeństwa związane z omijaniem dyrektywy open_basedir; jedna z nich była możliwa dzięki użyciu funkcji glob(), a druga – przy zastosowaniu dyrektyw session.save_path i error_log; ten drugi przypadek umożliwiał też ominięcie dyrektywy safe_mode.

Poprawiono również obsługę znaku końca pliku (EOF, od ang. End Of File) w trybie write-only (problem dotyczył sytuacji, w której ktoś próbował odczytać plik w tym trybie) oraz działanie rozszerzenia SimpleXML; w tym ostatnim naprawiono m.in. działanie metody getName(), rozpoznawanie przestrzeni nazw, czy współdziałanie z funkcją empty(), która sprawdza, czy zmienna ma jakąkolwiek zawartość.

http://www.ilia.ws
http://php.net

Zaloguj się, aby dodać komentarz

Nie masz konta? Zarejestruj się »

Zobacz także

Skuteczne narzędzia do wykrywania uszkodzonych podzespołów

pobierz

Wykrywanie i usuwanie niechcianych programów

pobierz

Polecane artykuły


Polecamy