ugrás a tartalomhoz

PHP Weekly - 131.

Granc Róbert · 2003. Már. 31. (H), 14.20
A Zend szokásos heti hírlevelének 131. számából:

Mi a PHP 5? - Sterling Hughes egy brilliáns beszédet tartott a múlt heti New Yorki PHP konferencián, amelyben áttekintést nyújt a közelgő PHP 5 legérdekesebb újdonságairól. Az előadás a következő témákat fedte le:
  • kitatarozott belsőségek

  • névterek

  • kivételkezelés

  • valós objektumorientáltság

  • javított streams API

  • SPL

  • ADT (absztrakt adattípusok) kiegészítő

  • RPC kiegészítő

  • Mono kiegészítő

  • csomagolt cURL könyvtár


A beszéd hanganyaga is meghallgatható, két részben: 1, 2.

A szálbiztos mód (thread safety) teljesítménye - Wojtek Meler küldött a listára néhány sebességtesztet, amelyeket a szálbiztos móddal kapcsolatban végzett. A mérések alapján a frissen telpített PHP thread safe módban kb. 5 százalékkal lassabban fut, mint egyébként. Zeev Suraski válaszában nem csak arról biztosította a listát, hogy ez az eredmény eléggé optimális, hanem hogy sokat javult a korábbi mérésekhez képest. Habár valószínűleg lehetséges lenne további optimalizálás a kódon, amely jobb eredményt hozhatna, nem biztos, hogy ez a kód komplexitása miatt megérné a marginális sebességnövekedést.

Nem szálbiztos kiegészítők - Arra a feltételezésre alapozva, hogy nagyszámú felhasználó használja (vagy legalábbis próbálja használni) a PHP-t az Apache2 kiszolgálón, David Hill egy rövid vitát kezdeményezett arra vonatkozóan, hogy miként lehetne a legjobban jelölni az új Apache verzióval szálbiztos (thread-safe) módban használható kiegészítőket és könyvtárakat. Mivel egyelőre még a szálbiztos könyvtárból van kevesebb, David továbblépve azt is javasolta, hogy a PHP Thread Safety mechanizmusába kerüljön bele valamilyen zárolási módszer, amely (elméletileg) lehetővé tenné bármely könyvtár (akár szálbiztos, akár nem) meghívását a szálbiztos környezetben, minimális teljesítménycsökkenés mellett. A javasolt változtatások összetettsége miatt azonban nem valószínű, hogy a PHP 5-nél korábban fogunk valami hasonlóval találkozni.

ICU kiegészítő - a múlt heti hírlevélben megemlített ICU kiegészítőnek saját honlapja is van már.

Időzónaváltozások a Tru64 platform miatt - David Hill 64 bites platformokon történő tesztelése alatt talált egy gondot a Tru64 platform időzóna-kezelésében. Úgy tűnik, hogy a PHP által használt GMT és EST referenciák nem szabványosak, habár szinte minden másik UNIX-szerű platform elfogadja őket.

Tehát a PHP5 a kijavított kódokat (GMT0 és EST5) tartalmazza majd, ennek eredményeként pedig bármely platformon megfelelően működnek majd az időzónák.

Az Apache 2 gyorsítása - Egy bizonyos Ilia A. mutatott be néhány változást az új Apache2 SAPIn. Egyes felesleges műveletek átugrásával Ilia a régebbi kód teljesítményét szinte megkétszerezte. A folton egyelőre még dolgoznak, de azok, akik nem tudnak várni a hamarosan érkező 4.3.2-re, itt már letölthetik.

socket_iovec_alloc segfault - Ezen a héten a Mordred Labs nevű biztonságtechnikai csoport figyelmeztetett egy lehetséges biztonsági lyukra a socket_iovec_alloc függvénnyel kapcsolatban. A gond csak a sockets kiegészítőt fordító felhasználókat érinti, hiszen az alapértelmezésként nem települ a PHP-vel. A javítást a közelgő 4.3.2 kiadás tartalmazza majd.

Beágyazott névterek - Andrei Zmievski bizonyos "furcsa" viselkedésre lett figyelmes a PHP 5 / Zend Engine 2 kettős jelenlegi alpha állapotú változataiban. Úgy tűnik, hogy jelenleg a beágyazott névtereket a kód csak szintaktikailag támogatja, progamozásilag nem. Andrei példája rámutatott, hogy a beágyazott névterek globálisan regisztrálódnak - míg a legtöbb fejlesztő szerint nem ennek kellene lenni a kívánt eredménynek. Egyelőre még nem jutottak végleges következtetésre, tehát később fog eldőlni, mennyire befolyásolja majd ez a végleges PHP 5-öt. A párbeszéd folytatásával minden következtetésről beszámolunk majd itt a hírlevélben is.

255 fájl hiba Solaris alatt - Wez Furlong felhívta a fejlesztők figyelmét az egyik legutolsó kritikus hibára: a Solaris libc megvalósítása nem tud fopen()-nel több, mint 255 fájlt megnyitni. A hosszas párbeszéd eredményeként (amelyben több alternatív megoldást is javasoltak a résztvevők), a legértelmesebbnek jelenleg az tűnik, hogy minden kódot, amellyel a PHP dolgozik (Apache, könyvtárak, stb) újra kell fordítani a SFIO használatával. Ám ez a megoldás nem működik a Solaris 9 platformon.