.NET Core 已经实现了PHP JIT,现在PHP是.NET上的一门开发语言

来源:互联网 发布:新页软件破解 编辑:程序博客网 时间:2024/05/01 07:37

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 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

最后给大家放一个9月份的 dotnetConf 大会上的一个视频: Running PHP on .NET Core with Peachpie,请在Wifi下观看


相关文章:

  • Peachpie编译器致力于将PHP带入.Net世界

  • 体验 PHP under .NET Core

原文地址:http://www.cnblogs.com/shanyou/p/8097881.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 dnf人物卡住了怎么办 dnf卡位置了怎么办 dnf老是卡屏怎么办 win10电脑断网怎么办 win7电脑断网怎么办 电脑老是断网怎么办 电脑网络掉线怎么办 无线断网了怎么办 wifi老是断网怎么办 天天宅在家里怎么办 狗狗一个人在家怎么办 在家里找不到猫怎么办 跟爸爸关系不好怎么办 养父母对你不好,怎么办 办事被孩子看到怎么办 爱上有血缘叔叔怎么办 和尚鹦鹉太瘦怎么办 和尚心中有色欲怎么办 冬天浴室洗澡冷怎么办 水龙头管子断了怎么办 马桶上水阀漏水怎么办 马桶不停的流水怎么办 厨房水龙头坏了怎么办 马桶进水管漏水怎么办 九牧水龙头漏水怎么办 水龙头松了漏水怎么办 皮肤瘙痒起红斑怎么办 唯品会密码忘了怎么办 宝宝憋尿哭闹怎么办 发面发的不好怎么办 蒸馒头面软了怎么办 面粉和稀了怎么办 蒸锅蒸馒头滴水怎么办 电脑连无线受限怎么办 电脑无线受限制怎么办 日本签证换护照怎么办 电动车大灯不亮怎么办 铁油箱漏油怎么办修补 阳台窗口太小怎么办 外观专利被侵权怎么办 汽车合格证丢了怎么办