2011年11月1日 星期二

一些 PHP 最近的發展

PEAR 已經太過老舊,因此現在有了一個 PEAR2 ,第二個版本的 PEAR ( http://pear2.php.net )。

Client 端可以使用 Pyrus 這個新的 Client 來取代原本的 PEAR ,該 Pyrus 採用 PHP5.3 所附加的 Phar 技術,類似 Java 的 Jar ,可將 source code 打包於單一個檔案。

此外,由於 PEAR 的包裝描述檔案,基本上都採用 XML 的格式 (package.xml) ,Symfony 的一些相關人士寫了一個新的 Package Service ( http://packagist.org/ ) 以及一個 Packager - Composer ( http://getcomposer.org )。

Composer 本身也使用 Phar 技術打包。基本上 Composer 套件格式採用 JSON ,也可透過 Composer 做 Local site 的安裝。

如下列指令:

$ php composer.phar install


附帶一提,打包 Phar 檔,也必須將您的 Autoloader 寫進去才行。 PHP 於 2009 年時初次釋出 5.3 版之後終於有了 namespace,所以可使用 autoloader 來自動將 namespace\class 載入。

有了 Namespace 之後,現在大部分套件都將 namespace 分隔字符換為 DIRECTORY_SEPARATOR ,來載入 Class , 但是所有舊有的 PEAR 套件採用的載入路徑規則卻是另一個樣,所以,如今寫 PHP Class Autoloader 也得另外寫一套 PEAR Style Compatible 的 Class Autoloader 才行。

結論: 

PHP 落後別人好幾年呀!