2008年5月20日 星期二

PHP6的新特性

PHP的下一個版本,V6,包含了很的新特性和語法改進,會使它在面向物件方面性更易用。其他重要的特性:比如在核心函數中對Unicode (統一編碼)的支援,這意味著 PHP 6提供了更好的更可靠國際支持。

PHP已經很流行,被無數的站點使用,被大部分網際網路接入商所支援,被Yahoo這樣的大網路公 司使用著。在即將來臨的PHP版本中準備增加一些成功的新特性,使PHP在某些場合下更易用更安全。你準備好接受 PHP 6 了嗎?如果你明天就升級了,你的程式會運行得很好嗎?你該怎麼辦?這篇文章集合了PHP 6的改變,他們中的一些備份移植到版本的PHP v5.x,您目前的腳本可能需要進行一些調整。

如果你現在使用不是PHP,但是一直在考慮它,考慮一下它的新特性。這些特點,從Unicode的核心支持到XML支持,使它更容易為你寫的功能填補PHP的應用。

PHP 6 新特性

PHP 6當前已經作為開發者快照使用,所以你可以下載和試用一下這篇文章列出很多特性,這些特性已經在當前的快照中實現了。見資源

改進 Unicode 支援

PHP的核心函數中,有很多對Unicode 字串的支援的改進,這些新特性將產生巨大的影響因為它允許PHP為國際字元提供更多的支援。所以如果一個開發者或者架構師使用不同的語言,例如Java程式語言,是因為它具有超過PHP的國際化支持的話,當支持改進時他會花一點時間來考慮一下PHP

因為今天你已經可以下載到開發者版本的 PHP V6,你將看到一些功能函數已經支援Unicode字串。有一個函數清單已經被測試和驗證了完全可以處理Unicode,參見資源

命名空間

命名空間是一種避免因函數或者類之間的命名衝突而使你的函數和類以及方法無法讀取,而不使用首碼命名慣例的一種方法。因此,通過使用命名空間,你可以命名別人可能已經使用的類名,而不用擔心在運行時會出錯。表一提供了一個在PHP中使用命名空間的示例。

您不用在源代碼中做更新或更改,因為你寫的任何PHP代碼可以不包含命名空間而運行得很好。因為命名空間特性似乎會移植到PHP 5.3 X中,如果它可以使用,您可以在自己的程式中引用命名空間。

表一,命名空間示例

php
// I'm not sure why I would implement my own XMLWriter, but at least
// the name of this one won't collide with the one built in to PHP
namespace NathanAGood;
class XMLWriter
{
// Implementation here...
}

$writer = new NathanAGood::XMLWriter();

?>

Web 2.0 特性

依賴於你怎麼使用PHP和你現在腳本的是什麼樣子的,現在的語言和語法差異,可能會或者不會最大程度的影響下面一些特性,這是指那些直接讓你引用的Web 2.0功能到你的PHP應用程式。

SOAP

SOAP是一種網路服 務說話的協定,並且支援不少其他語言,例如Java和微軟的.NET,雖然有其他的方法來驅動和使用網路服務,比如 表像化狀態轉變(Representational State Transfer RESTSOAP仍然在使不同平臺具有可操作性中是最常用的。此外,SOAPPHP擴展和PEAR庫中使用,SOAPPHP中默認是不支持的,因 此你啟用這個擴展或者叫你的ISP啟用。此外,PEAR包允許你建立SOAP用戶端和伺服器,如SOAP包。

如果你改變了默認設置,SOAP將會在PHP 6中啟用。這個擴展將提供你很容易的的實現SOAP用戶端和SOAP服務,允許你編寫的應用提供使用或者網路服務。

如果SOAP擴展是默認設置,那就意味著你不能在PHP中設置它們,如果您開發的PHP應用程式並且它們發佈到一個ISP伺服器上,您可能需要檢查一下你的ISP,以驗證SOAP並啟用為他們升級。

XML

PHP 5.1XMLReader XMLWriter已經變成PHP核心的一部分,這使你工作起來更輕鬆如果在你的PHP程式中需要使用到XML的話。和SOAP擴展一樣,如果你使用SOAP或者XML這是個好消息因為PHP 6比已經出爐的PHP4 更適合你。

被刪除的東西

除了具有的一些新功能,PHP 6引擎將刪除一些在前面版本中已經有的功能。大部分這些功能,如register_globals safe_mode 在目前的PHP中被視為破的。因為他們可能會暴露一些安全風險。PHP在努力的清除中,在下一個版本中這些將從PHP中刪除或者廢棄。反對者認為大部分ISP或者企業會保留現在的腳本因為升級到PHP6會破壞現在的的腳本,但是支持者認為很高興看到PHP團隊修補了這些漏洞,並且提供了一個乾淨,安全的運行工具。

將從PHP刪除的功能有:

magic_quotes register_globals register_long_arrays safe_mode

更詳細情況請看這裏:IBM 社區

沒有留言: