Mirin webspace

Nejbohatší život má ten, kdo žije s minimem nároků

8. 4. 2010 - Komentáře (1) PHP

Vývoj PHP 5.x

Jak jste si mohli přečíst ve zprávičce na rootu, PHP rezignovalo na aktuální implementaci php 6 v trunku a pojede se v podstatě nanovo. Jeden z důvodů byl přilákat více přispěvatelů do PHP. Dost často se totiž v minulosti stalo, že člověku bylo řečeno, že "teď ne, až v šestce". A ten dotyčný se na to posléze vykašlal, když viděl jak se php 6 vyvíjí. Zdá se, že to pomalu začíná fungovat a už se začínají rýsovat věci, které by se mohly objevit v následujícím PHP 5.X.

FPM

Jde o podstatné rozšíření a vylepšení stávajícího SAPI pro CGI/FastCGI. Jednak dojde k oddělení kódu, který byl zatím pro CGI i FastCGI společný a hlavně process management FastCGI bude mít mnohem více možností, vylepšené logování atd. Souvisí to zejména s tím, jak se PHP začalo masivněji používat s lightweight servery jako LightHTTPd, ngingx a asi i IIS na Win.

Nové hash funkce, implicitní kódování

  • Přijaty byly implementace dvou nových hashovacích funkcí (prý Jenkins's one-at-a-time hash a FNV-1 - netuším moc o co jde).
  • default_charset bude nyní utf-8
  • Lepší podpora pro detekci zend rozšíření v reflections.
  • Podpora key-value databáze Tokyo Cabinet via ext/dba.
  • Odstranění fallback construktoru.

Odstranění fallback construktoru je poměrně zajímavá věc. Jeden ze tří full time Zend Framework vývojářů (zkuste si tipnout, kteří to jsou :-)) se zmínil o problémech při přechodu Zend frameworku na namespaces. Problém se týká kódu

namespace Foo\Bar;
 class Filter {
  public function __construct() { /* construct stuff */ }
  public function filter($value) { /* return filtered */ }
 }

Ono totiž pokud konstruktor není v PHP 5 definován přes __construct, tak se PHP shání po funkci, která se shoduje s názvem třídy. O téhle PHP 4 BC jsem tedy vůbec netušil. Bylo to uděláno zejména z důvodu hromady PEAR kódu. PHP dokonce vyhodí u výše uvedeného kódu notice. Další sranda přijde na řadu pokud si uvědomíte, že PHP je case insensitive u názvů funkcí. Nově by se tedy v namespaces neměl uplatňovat tenhle fallback pro konstruktor.

Hodně se rozjela diskuse o těchto tématech

  • podpora vláken - konečně by se z PHP mohl stát univerzálnější prostředek, zatím ale není jasné, jakým směrem se vydat. Zda se odrazit od stávajícího TSRM nebo se začít hrabat v semaforech, lockování atd. Moriyoshi (oniguruma san, mbstring master :-)) má fork php, který přináší podporu threadů do userspace.
  • podpora pojmenovaných parametrů pro funkce
  • horizontální kompozice - traits/grafts

Zatím se nic konkrétního nerýsuje, vetšinou to jako první dost smete Rasmus, ale naštěstí jsou tam i ostatní.

Je ale poměrně reálné, že ještě letos bychom se mohli dočkat nového php 5.x, kde by se mohlo pár nových užitečných věcí objevit.


Komentáře (1)

  1. kukulich - 9. 4. 2010 16:01

    Čtu php internals dlouhodobě a podle toho si myslím, že letos žádná nová verze PHP nebude. Mám na mysli stable, alpha by na podzim být mohla. Stable ale skoro určitě až na jaře.

Komentáře jsou uzavřeny.