.NET Core 已经实现了PHP JIT,现在PHP是.NET上的一门开发语言
12月23日,由開源中國聯合中國電子技術標準化研究院主辦的2017源創會年終盛典在北京萬豪酒店順利舉行。在本次大會上,鏈家集團技術副總裁、PHP 開發組核心成員鳥哥發表了以 “ PHP Next: JIT ”為主題的演講,分享了 PHP 的下一個性能提升的主要舉措:JIT 的進展, 以及下一個大版本的 PHP 可能的特性。 這里PHP Next? 目前正在開發當中,由 Zend 的 Dmitry Stogov 主導,但實際版本號尚未定義,我暫且把它叫做PHP 8.? 關鍵功能 JIT(Just-In-Time)編譯,是一種將代碼轉換為另一種字節碼(比如運行它的機器 CPU 的本地代碼)的技術。 JIT 可以使程序運行更快。JIT 可以對現有代碼提供很大的性能改進,但在某些情況下,你可能會注意到速度提高只有幾個百分點,在最壞的情況下,它甚至可能會變慢,因為編譯不會生成更快的代碼。 我看到這篇文章內容就想起了.NET平臺上的開源項目Peachpie。
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.
Peachpie 現在還是.NET 基金會下面的項目,具體可以看博客https://www.peachpie.io/2017/07/net-foundation-announcement.html,目前最新版本是0.8,還沒有達到在生產環境運行的1.0版本,從他的路線圖?https://github.com/peachpiecompiler/peachpie/wiki/Peachpie-Roadmap?上看已經很接近了。它的各項性能指標上也是非常的優秀?https://www.peachpie.io/benchmarks
Peachpie是一個基于Microsoft的Roslyn的現代PHP編譯器,并從我們廣受歡迎的** Phalanger **項目中獲取。它允許PHP在.NET框架內運行,從而為PHP開發人員打開了.NET的大門 - 反之亦然。該項目的目標是將遺留的PHP代碼編譯成可移植的類庫,使開發人員能夠快速,輕松地為Microsoft平臺構建跨平臺的應用程序和庫。直接的結果是,由Peachpie提供支持的PHP應用程序將運行在能夠運行.NET的所有設備和操作系統上。除了授予PHP程序員進行跨平臺開發之外,Peachpie允許與.NET完全兼容,這使得開發混合應用程序成為可能,其中部分代碼是用C#編寫的,部分用PHP編寫的。這些部分將完全兼容,并且可以在.NET框架內無縫地進行通信。
通過Peachpie 已經可以在.NET 平臺上運行經典的PHP程序,例如WordPress,CodeIgniter,Drupal, MediaWiki等 。 不過還有一個 bug要修復,具體參見https://github.com/peachpiecompiler/peachpie/issues。
下面我們來簡要體驗下使用PHP寫.NET程序:
1、安裝.NET Core SDK
.NET Core構建并授權您的應用程序。這是一個通用,跨平臺和安全的代碼環境。
2、安裝Peachpie .NET模板
我們已經為您準備了通用的項目類型。他們隱藏了項目文件的所有復雜性,并附帶代碼示例。
dotnet new -i Peachpie.Templates :: *一共有三個模板:控制臺,web以及類庫3、創建網站
現在創建該項目,該命令將創建初始解決方案所需的所有文件。Website目錄將包含您的PHP網站的根目錄。
繼續編輯新創建的Website/index.php文件。
dotnet new peachpie-web-lang PHP4、運行你的項目
導航到該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://github.com/iolevel/peachpie-wordpress?下載項目
將文件解壓到某個文件夾
安裝MySQL,wordpress使用mysql數據庫
更改wp-config.php中的數據庫連接設置
打開命令行并轉切換到WordPress項目文件的文件夾
運行以下命令:
dotnet restore
cd app
dotnet run
等待幾分鐘,直到應用程序編譯并啟動
在您最喜愛的網頁瀏覽器中打開http:// localhost:5004
最后給大家放一個9月份的 dotnetConf 大會上的一個視頻: Running PHP on .NET Core with Peachpie,請在Wifi下觀看
class="video_iframe" data-vidtype="2" allowfullscreen="" frameborder="0" data-ratio="1.7647058823529411" data-w="480" data-src="http://v.qq.com/iframe/player.html?vid=l0523epxdbc&width=670&height=376.875&auto=0" style="display: block; width: 670px !important; height: 376.875px !important;" width="670" height="376.875" data-vh="376.875" data-vw="670" src="http://v.qq.com/iframe/player.html?vid=l0523epxdbc&width=670&height=376.875&auto=0"/>
相關文章:
Peachpie編譯器致力于將PHP帶入.Net世界
體驗 PHP under .NET Core
原文地址:http://www.cnblogs.com/shanyou/p/8097881.html
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的.NET Core 已经实现了PHP JIT,现在PHP是.NET上的一门开发语言的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Orleans入门
- 下一篇: ASP.NET Core中的OWASP