12月23日,由開源中國聯合中國電子技術標準化研究院主辦的2017源創會年終盛典在北京萬豪酒店順利舉行。在本次大會上,鏈家集團技術副總裁、PHP 開發組核心成員鳥哥發表了以 「 PHP Next: JIT 」爲主題的演講,分享了 PHP 的下一個性能提高的主要舉措:JIT 的進展, 以及下一個大版本的 PHP 可能的特性。 具體內容請看: https://mp.weixin.qq.com/s/bYZLJgKtdRwSX40Xixc5Yw ,這裏PHP Next 目前正在開發當中,由 Zend 的 Dmitry Stogov 主導,但實際版本號還沒有定義,我暫且把它叫作PHP 8. 關鍵功能 JIT(Just-In-Time)編譯,是一種將代碼轉換爲另外一種字節碼(好比運行它的機器 CPU 的本地代碼)的技術。 JIT 可使程序運行更快。JIT 能夠對現有代碼提供很大的性能改進,但在某些狀況下,你可能會注意到速度提升只有幾個百分點,在最壞的狀況下,它甚至可能會變慢,由於編譯不會生成更快的代碼。 我看到這篇文章內容就想起了.NET平臺上的開源項目Peachpie。php
Peachpie 是一個用於 .NET 平臺上的的 PHP 編譯器和運行時。做爲 PHP 語言的徹底從新實現,它容許徹底使用 .NET 進行編寫,並在 .NET Framework、NET Core 和 Mono 上運行 PHP。Peachpie 能夠無縫利用 .NET 對象,另外一方面,也可讓 C# 代碼直接訪問已編譯的 PHP 函數、變量和類。Peachpie 項目的目標是將 PHP 代碼庫遷移至 .NET,從而可經過各自的 API 爲 PHP 提供 .NET 和 ASP.NET 運行時。最新版本是0.8,支持.NET Standard 2.0: https://www.peachpie.io/2017/11/php-netstandard-2-0.html ,Peachpie 也在PHP 7.2發佈時第一時間完成支持編譯PHP7.2 代碼到.NET https://www.peachpie.io/2017/12/php-7-2-on-net.html .html
Peachpie是一個基於Microsoft的Roslyn的現代PHP編譯器,並從咱們廣受歡迎的** Phalanger **項目中獲取。它容許PHP在.NET框架內運行,從而爲PHP開發人員打開了.NET的大門 - 反之亦然。該項目的目標是將遺留的PHP代碼編譯成可移植的類庫,使開發人員可以快速,輕鬆地爲Microsoft平臺構建跨平臺的應用程序和庫。直接的結果是,由Peachpie提供支持的PHP應用程序將運行在可以運行.NET的全部設備和操做系統上。除了授予PHP程序員進行跨平臺開發以外,Peachpie容許與.NET徹底兼容,這使得開發混合應用程序成爲可能,其中部分代碼是用C#編寫的,部分用PHP編寫的。這些部分將徹底兼容,而且能夠在.NET框架內無縫地進行通訊。mysql
經過Peachpie 已經能夠在.NET 平臺上運行經典的PHP程序,例如WordPress,CodeIgniter,Drupal, MediaWiki等 。 不過還有一個 bug要修復,具體參見https://github.com/peachpiecompiler/peachpie/issues。git
下面咱們來簡要體驗下使用PHP寫.NET程序:程序員
.NET Core構建並受權您的應用程序。這是一個通用,跨平臺和安全的代碼環境。github
二、安裝Peachpie .NET模板web
咱們已經爲您準備了通用的項目類型。他們隱藏了項目文件的全部複雜性,並附帶代碼示例。sql
dotnet new -i Peachpie.Templates :: *數據庫
一共有三個模板:控制檯,web以及類庫
三、建立網站瀏覽器
如今建立該項目,該命令將建立初始解決方案所需的全部文件。Website
目錄將包含您的PHP網站的根目錄。
繼續編輯新建立的Website/index.php
文件。
dotnet new peachpie-web-lang PHP
四、運行你的項目
導航到該Server
目錄。這是Web應用程序的入口,做爲PHP網站的引導程序工做。
這些命令還原全部的依賴關係,編譯項目並啓動Web服務器。
cd serverdotnet restore dotnet run
打開您最喜歡的網絡瀏覽器並輸入網址。
HTTP://localhost:5004
他們已經爲Peachpie 上線了商業網站http://www.peachpiestudio.com/ ,爲Peachpie的發展提供商業服務支持,你能夠在Peachpie編譯器平臺上找到商業工具和服務,你能夠經過Visual Studio/Visual studio code上進行代碼的開發。
WordPress示例
Peachpie使用他們的WordPress版本做爲PHP編譯爲.NET的一個例子。 咱們來演示如何跑起來。
個人博客即將搬運同步至騰訊雲+社區,邀請你們一同入駐:https://cloud.tencent.com/developer/support-plan