歡迎您光臨本站 註冊首頁

PHP 的未來 了解 PHP6 的變化及其對腳本的影響

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  
PHP 的版本 V6 包含一些新特性和語法改進,從面向對象的角度看,PHP6 更加易於使用。其他重要特性(比如在許多核心函數中支持 Unicode)反映了 PHP V6 力爭獲得更好的國際通用性支持和健壯性。

PHP 已經很流行,它不僅用於各個領域(根據 Netcraft),而且還得到大部分 ISP 的支持和知名 Web 公司(比如 Yahoo!)的使用。此外,未來的 PHP 版本將引入新的特性以提高其易用性和安全性。您已經為使用 PHP V6 做好準備了嗎?假設您要升級到 PHP V6,您的腳本能正常執行嗎?或者需要進行一些更改?本文主要介紹 PHP V6 的變化(一些特性向後支持 PHP V5.x 版本),您可能需要根據這些變化對當前的腳本作出一些調整。

如果您尚未使用 PHP,並且一直考慮使用它,那麼可以看看它的最新特性。這些特性 —— 從 Unicode 支持到 XML 支持 —— 將讓您能夠更加輕鬆地編寫出特性豐富的 PHP 應用程序。

PHP V6 的新特性

PHP V6 的初步副本已經發布,所以您可以下載它並試用本文列出的許多特性和更改。對於當前副本已經實現的特性,見 參考資料。

改進的 Unicode 支持

PHP V6 的最大改進是在許多核心函數中支持 Unicode 字元串。這個新特性有巨大的影響,因為它允許 PHP 支持更廣泛的字符集,從而獲得更多的國際支持。所以,如果您是一位使用不同語言(比如 Java™ 編程語言,這些語言的國際化(il8n)支持比 PHP 好)的開發人員或架構師,那麼您應該看看國際化支持改進后的 PHP。

現在,已經可以下載和使用針對開發人員的 PHP V6,所以您可以看到其中的一些特性已經支持 Unicode 字元串。要獲取已經經過測試和驗證的可以處理 Unicode 的函數,參見 參考資料。

什麼是 Unicode?
Unicode 是一組字元、字元編碼和編碼方法行業標準,其主要目標是支持 i18n 和本地化 (i10n)。Unicode Transformation Format (UTF) 為 Unicode 指定一種編碼字元的方式。關於 Unicode 和 UTF 的更多信息,見 參考資料 部分。

名稱空間

名稱空間 是一種避免函數名和類名出現衝突的方法,並且不會在命名約定中使用前綴,從而增強了函數名和類名的可讀性。因此通過使用名稱空間,您可以使用可能已被他人使用的類名,但不用擔心出現問題。清單 1 提供一個 PHP 的名稱空間例子。

您不需要對代碼進行任何更新或修改,因為不包含名稱空間的 PHP 代碼將能夠正常運行。因為名稱空間特性向後支持至 PHP V5.3,因此當該特性可用時,您可以在 PHP 應用程序中引入名稱空間。


清單 1. 名稱空間的例子
				  <?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 的方式以及當前的代碼,PHP V6 中的語言和語法差別對您的影響可能沒有接下來的特性大,這些特性允許您將 Web 2.0 特性直接引入到 PHP 應用程序中。

SOAP

SOAP 是 Web 服務採用的協議之一,並且在許多其他語言中都得到支持,比如 Java 編程語言和 Microsoft® .NET。儘管有許多其他方式可以使用和公開 Web 服務(比如 Representational State Transfer,REST),SOAP 仍然是實現不同平台之間的交互性的常用方法。除了 PHP Extension and Application Repository (PEAR) 庫中的 SOAP 模塊之外,PHP V5 還引入了一個 SOAP 擴展。默認情況下這個擴展是禁用的,所以您或您的 ISP 必須啟用它。此外,您可以通過 PEAR 包構建 SOAP 客戶端和伺服器,比如 SOAP 包。

除非您更改了默認設置,否則 SOAP 擴展在 PHP V6 中是啟用的。這些擴展為實現 SOAP 客戶端和 SOAP 伺服器提供一種簡易的方法,從而使您能夠構建使用和提供 Web 服務的 PHP 應用程序。

如果默認啟用了 SOAP 擴展,您就不需要在 PHP 中配置它們。如果您開發了 PHP 應用程序併發布給 ISP,那麼您必須和 ISP 進行核實,確保他們在升級時為您啟用 SOAP 擴展。

XML

從 PHP V5.1 開始,XMLReader 和 XMLWriter 就成為了 PHP 核心的一部分,這使您能夠在 PHP 應用程序中更加輕鬆地處理 XML。與 SOAP 擴展一樣,如果您使用 SOAP 或 XML 的話,這個特性是個好消息,因為 PHP V6 比 V4 更適合您。

XMLWriter 和 XMLReader 是基於流的面向對象類,它們允許您讀寫 XML,並且不要擔心 XML 的細節。





刪除的特性

PHP V6 在添加一些新特性的同時,也刪除了以前版本中的一些函數和特性。被刪除的大部分東西,比如 register_globals 和 safe_mode,在當前的 PHP 中都被廣泛認為是 “有漏洞的”,因為它們可能招致安全風險。為了保持 PHP 的簡潔性,將刪除下面小節列出的函數和特性。在 ISP 或企業升級到 PHP V6 之後,反對刪除這些內容的人很可能會給現有的腳本帶來安全問題,而支持刪除的人將會很幸運,因為 PHP 團隊為他們修復了一些漏洞,並且提供更加乾淨、安全的實現。

從 PHP V6 刪除的特性包括:

  • magic_quotes
  • register_globals
  • register_long_arrays
  • safe_mode

magic_quotes

由於 magic_quotes 導致可移植性、性能和易用性方面的問題,所以 PHP 文檔不鼓勵使用它。鑒於這個原因,PHP V6 乾脆刪除了該特性。因此,在升級到 PHP V6 之前,要確保您的代碼沒有使用 magic_quotes。如果您正在使用 magic_quotes 為資料庫調用轉換字元串類型,請使用資料庫實現的參數化查詢(如果支持的話)。如果不支持參數化查詢,請使用資料庫實現的類型轉換函數,比如針對 MySQL 的 mysql_escape_string 或針對 PostgreSQL 的 pg_escape_string。清單 2 顯示了一個使用 magic_quotes 的例子。


清單 2. 使用 magic_quotes(不推薦)
				  <?php  // Assuming magic_quotes is on...  $sql = "INSERT INTO USERS (USERNAME) VALUES 
PHP 的版本 V6 包含一些新特性和語法改進,從面向對象的角度看,PHP6 更加易於使用。其他重要特性(比如在許多核心函數中支持 Unicode)反映了 PHP V6 力爭獲得更好的國際通用性支持和健壯性。

PHP 已經很流行,它不僅用於各個領域(根據 Netcraft),而且還得到大部分 ISP 的支持和知名 Web 公司(比如 Yahoo!)的使用。此外,未來的 PHP 版本將引入新的特性以提高其易用性和安全性。您已經為使用 PHP V6 做好準備了嗎?假設您要升級到 PHP V6,您的腳本能正常執行嗎?或者需要進行一些更改?本文主要介紹 PHP V6 的變化(一些特性向後支持 PHP V5.x 版本),您可能需要根據這些變化對當前的腳本作出一些調整。

如果您尚未使用 PHP,並且一直考慮使用它,那麼可以看看它的最新特性。這些特性 —— 從 Unicode 支持到 XML 支持 —— 將讓您能夠更加輕鬆地編寫出特性豐富的 PHP 應用程序。

PHP V6 的新特性

PHP V6 的初步副本已經發布,所以您可以下載它並試用本文列出的許多特性和更改。對於當前副本已經實現的特性,見 參考資料。

改進的 Unicode 支持

PHP V6 的最大改進是在許多核心函數中支持 Unicode 字元串。這個新特性有巨大的影響,因為它允許 PHP 支持更廣泛的字符集,從而獲得更多的國際支持。所以,如果您是一位使用不同語言(比如 Java™ 編程語言,這些語言的國際化(il8n)支持比 PHP 好)的開發人員或架構師,那麼您應該看看國際化支持改進后的 PHP。

現在,已經可以下載和使用針對開發人員的 PHP V6,所以您可以看到其中的一些特性已經支持 Unicode 字元串。要獲取已經經過測試和驗證的可以處理 Unicode 的函數,參見 參考資料。

什麼是 Unicode?
Unicode 是一組字元、字元編碼和編碼方法行業標準,其主要目標是支持 i18n 和本地化 (i10n)。Unicode Transformation Format (UTF) 為 Unicode 指定一種編碼字元的方式。關於 Unicode 和 UTF 的更多信息,見 參考資料 部分。

名稱空間

名稱空間 是一種避免函數名和類名出現衝突的方法,並且不會在命名約定中使用前綴,從而增強了函數名和類名的可讀性。因此通過使用名稱空間,您可以使用可能已被他人使用的類名,但不用擔心出現問題。清單 1 提供一個 PHP 的名稱空間例子。

您不需要對代碼進行任何更新或修改,因為不包含名稱空間的 PHP 代碼將能夠正常運行。因為名稱空間特性向後支持至 PHP V5.3,因此當該特性可用時,您可以在 PHP 應用程序中引入名稱空間。



[火星人 ] PHP 的未來 了解 PHP6 的變化及其對腳本的影響已經有506次圍觀

http://coctec.com/docs/linux/show-post-68838.html