.NET Core 已經實現了PHP JIT,現在PHP是.NET上的一門開發語言

來源:互聯網
上載者:User

標籤:rdp   rpe   準備   core   還原   應用程式   alt   開源   環境   


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。

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 PHP

4、運行你的項目

導航到該Server目錄。這是Web應用程式的入口,作為PHP網站的引導程式工作。

這些命令還原所有的依賴關係,編譯項目並啟動Web伺服器。

cd server
dotnet restoredotnet run
測試你的網站

開啟您最喜歡的網路瀏覽器並輸入網址。

HTTP://localhost:5004

他們已經為Peachpie 上線了商業網站http://www.peachpiestudio.com/ ,為Peachpie的發展供應商業服務支援,你可以在Peachpie編譯器平台上找到商業工具和服務,你可以通過Visual Studio/Visual studio code上進行代碼的開發。

WordPress樣本

Peachpie使用他們的WordPress版本作為PHP編譯為.NET的一個例子。 我們來示範如何跑起來。

  1. 從  https://github.com/iolevel/peachpie-wordpress 下載項目
  2. 將檔案解壓到某個檔案夾
  3. 安裝MySQL,wordpress使用mysql資料庫
  4. 更改wp-config.php中的資料庫連接設定
  5. 開啟命令列並轉切換到WordPress專案檔的檔案夾
  6. 運行以下命令:
    dotnet restore
    cd app
    dotnet run
  7. 等待幾分鐘,直到應用程式編譯並啟動
  8. 在您最喜愛的網頁瀏覽器中開啟http:// localhost:5004

.NET Core 已經實現了PHP JIT,現在PHP是.NET上的一門開發語言

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.