.Net Core开发日志——Peachpie
.Net Core的生态圈随着开源社区的力量不断注入至其中,正在变得越来越强盛,并且不时得就出现些有意思的项目,比如Peachpie,它使得PHP的代码迁移到.Net Core项目变得可能。
从创建简单的入门程序开始可以更容易地体会其特性。
首先安装Peachpie的模板:
dotnet new -i Peachpie.Templates::*
接着创建项目:
dotnet new web -lang PHP -o helloPHP
然后切换目录至Server文件夹运行程序:
cd Server dotnet run
最后通过浏览器访问http://localhost:5004/:
Peachpie的运行机制很简单,将PHP文件编译成.Net平台的dll文件,这样就可以如同普通的.Net代码库一般被其它程序调用。
它包含三个部分:
- 编译器(peach.exe或者Peachpie.NET.Sdk),将PHP文件编译成.Net程序集
- 运行时(Peachpie.Runtime.dll),提供程序运行时所需的功能
- 代码库(Peachpie.Library.dll),包含PHP的函数,类及其它的实现
再回到开始的入门程序代码探究一番,可以发现关键点在于Website目录下的Website.msbuildproj文件中:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Library</OutputType> <TargetFramework>netstandard2.0</TargetFramework> <AssemblyName>helloPHP</AssemblyName> </PropertyGroup> <ItemGroup> <Compile Include="**/*.php" /> </ItemGroup> <ItemGroup> <DotNetCliToolReference Include="Peachpie.Compiler.Tools" Version="0.9.0-*" /> <PackageReference Include="Peachpie.NET.Sdk" Version="0.9.0-*" PrivateAssets="Build" /> </ItemGroup> </Project>
在Peachpie.Compiler.Tools与Peachpie.NET.Sdk两者的作用下,包含index.php文件在内的所有PHP文件都最终会被编译成一个dll文件。
用使用这个dll文件也很简单,在Startup类的Configure方法里这样调用一下:
app.UsePhp(new PhpRequestOptions(scriptAssemblyName: "helloPHP"));
运行在ASP.Net中的PHP站点便诞生了。
Peachpie项目整体还在开发阶段,但不影响其已经能完成些惊人的工作,例如,其虽是构建在WordPress上,但已经被Peachpie编译成可以在ASP.NET中运行。仅凭以下的图你一定不会想到这个网站是PHP写成的:
在它的中可以看到关于此事的更详细信息。
如果你对PHP代码迁移到.Net平台这件事感兴趣的话,可以访问其在Github上的,若是能为它添砖加瓦的话,那是再好不过了。
上一篇: 生成随机字符
下一篇: 魅族将借MX4Pro进军移动支付
推荐阅读
-
VS2015 搭建Asp.net core开发环境的方法
-
详解ASP.NET Core应用中如何记录和查看日志
-
.NET Core / C# 开发 IOT 嵌入式设备的个人见解
-
(14)ASP.NET Core 中的日志记录
-
Asp.Net Core2.2 源码阅读系列——控制台日志源码解析
-
ASP.NET Core Web 应用程序开发期间部署到IIS自定义主机域名并附加到进程调试
-
.NET Core开发日志——Middleware
-
.NET Core开发日志——OData
-
分享一个基于Net Core 3.1开发的模块化的项目
-
.NET Core前后端分离快速开发框架(Core.3.0+AntdVue)