体验 PHP under .NET Core
昨天在 The week in .NET 中发现 Scott Hanselman 的这篇博文 Peachpie - Open Source PHP Compiler to .NET and WordPress under ASP.NET Core,知道了 Peachpie PHP 编译器加入了 .NET 基金会,借助 Peachpie ,.NET Core 已经支持 PHP 。
今天在 Linux 上实际体验一下 PHP under .NET Core 。
首先用 dotnet 命令安装一下 Peachpie 模板
# dotnet new -i Peachpie.Templates::*
Restoring packages for /root/.templateengine/dotnetcli/v2.0.0-preview2-006497/scratch/restore.csproj...
Installing Peachpie.Templates 0.7.0.
Generating MSBuild file /root/.templateengine/dotnetcli/v2.0.0-preview2-006497/scratch/obj/restore.csproj.nuget.g.props.
Generating MSBuild file /root/.templateengine/dotnetcli/v2.0.0-preview2-006497/scratch/obj/restore.csproj.nuget.g.targets.
Restore completed in 4.42 sec for /root/.templateengine/dotnetcli/v2.0.0-preview2-006497/scratch/restore.csproj.
然后用 Peachpie 模板创建一个 php 控制台项目
# dotnet new peachpie-console -n hello-world
The template "Peachpie console application" was created successfully.
接着看一下控制台项目包含的文件
# ls
hello-world.msbuildproj program.php README.md
发现新面孔 program.php ,看看其中的 php 代码
<?php
function main()
{
echo "Hello .NET World!";
}
main();
原味正宗的 php 代码。
为了更好地在终端中显示,给显示字符串加个换行
<?php
function main()
{
echo "Hello .NET World!\n";
}
main();
好了,.net core 下的 php 控制台程序准备就绪,用 dotnet run 命令运行一下试试
# dotnet run
Hello .NET World!
运行成功!
再接着创建一个 php web 项目试试
# dotnet new peachpie-web -n HelloPhp
The template "Peachpie web application" was created successfully.
看看生成的解决方案的文件
# tree
.
├── HelloPhp
│ ├── HelloPhp.msbuildproj
│ └── index.php
├── HelloPhp.Server
│ ├── HelloPhp.Server.csproj
│ └── Program.cs
├── HelloPhp.sln
└── README.md
进入 HelloPhp/HelloPhp.Server 目录运行 dotnet run 命令 运行 php web 项目
# dotnet run
Hosting environment: Production
Content root path: /home/root/HelloPhp/HelloPhp.Server/bin/Debug/netcoreapp1.1
Now listening on: http://*:5004
Application started. Press Ctrl+C to shut down.
成功运行!用 curl 命令访问测试一下
# curl http://localhost:5004
Hello World!
成功显示"Hello World!"。
欢迎 PHP 来到 .NET 的世界!
体验 PHP under .NET Core的更多相关文章
- dotnet core开发体验之开始MVC
开始 在上一篇文章:dotnet core多平台开发体验 ,体验了一把dotnet core 之后,现在想对之前做的例子进行改造,想看看加上mvc框架是一种什么样的体验,于是我就要开始诞生今天的这篇文 ...
- dotnet core多平台开发体验
前言 随着net core rc2的发布,园子里面关于net core的入门文章也也多了起来,但是大多数都是在一个平台上面来写几个简单的例子,或者是在解释代码本身,并没有体现说在一个平台上面创建一个项 ...
- .NET Core多平台开发体验[1]: Windows
微软在千禧年推出 .NET战略,并在两年后推出第一个版本的.NET Framework和IDE(Visual Studio.NET 2002,后来改名为Visual Studio),如果你是一个资深的 ...
- .NET Core多平台开发体验[2]: Mac OS X
除了微软自家的Windows平台, .NET Core针对Mac OS以及各种Linux(RHEL.Ubuntu.Debian.Fedora.CentOS和SUSE等)都提供了很好的支持,我们先来体验 ...
- .NET Core多平台开发体验[4]: Docker
对于一个 .NET开发人员,你可能没有使用过Docker,但是你不可能没有听说过Docker.Docker是Github上最受欢迎的开源项目之一,它号称要成为所有云应用的基石,并把互联网升级到下一代. ...
- .NET Core多平台开发体验[3]: Linux (Windows Linux子系统)
如果想体验Linux环境下开发和运行.NET Core应用,我们有多种选择.一种就是在一台物理机上安装原生的Linux,我们可以根据自身的喜好选择某种Linux Distribution,目前来说像R ...
- [ASP.NET Core 3框架揭秘] 跨平台开发体验: Windows [上篇]
微软在千禧年推出 .NET战略,并在两年后推出第一个版本的.NET Framework和IDE(Visual Studio.NET 2002,后来改名为Visual Studio),如果你是一个资深的 ...
- [ASP.NET Core 3框架揭秘] 跨平台开发体验: Docker
对于一个 .NET Core开发人员,你可能没有使用过Docker,但是你不可能没有听说过Docker.Docker是Github上最受欢迎的开源项目之一,它号称要成为所有云应用的基石,并把互联网升级 ...
- [ASP.NET Core 3框架揭秘] 跨平台开发体验: Linux
如果想体验Linux环境下开发.NET Core应用,我们有多种选择.一种就是在一台物理机上安装原生的Linux,我们可以根据自身的喜好选择某种Linux Distribution,目前来说像RHEL ...
随机推荐
- 使用Amalgamate将C/C++项目合并成一个.h/.c[pp]文件
简述 C/C++开源库一般是一堆的头文件和源文件,做到声明和实现分离,减小单个模块大小,这在设计上是很好的,但是用起来稍显麻烦.在网上看到有好心人推荐了一个开源工具Amalgamate,专门用来对C/ ...
- MySQL5.7在JSON解析后丢失小数部分的Bug
在MySQL Bugs上提交了 https://bugs.mysql.com/bug.php?id=84935 . 已经在MySQL8.0.1中修复 重现步骤 -- Prepare the table ...
- Django Web开发学习笔记(5)
第五部分 Model 层 创建一个app工程.app和project的区别引用DjangoBook的说法是: 一个project包含很多个Django app以及对它们的配置. 技术上,project ...
- Asp.Net WebApi swagger使用教程
swagger简介 别名:丝袜哥 功能:用于生产api文档 swagger安装 Nuget搜索swagger,然后安装Swashbuckle swagger使用 生成api的xml文档 webapi项 ...
- spring aop 之xml
1.类库 2.aop概念 一个切面可以有多个切点 3.在方法前后进行aop的测试代码 3.1aop.xml <beans xmlns="http://www.springframewo ...
- 【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-6底层驱动之多路开关选择器
视频简介:该视频介绍iCore3应用开发平台中多路开关选择器的应用,多路开关选择器的硬件电路连接以及软件实现的方法. 源视频包下载地址:链接:http://pan.baidu.com/s/1geQ4W ...
- Brainfuck反汇编-高级版(Python)
import re def sym2cal(s): if '>' in s: return len(s) else: return -len(s) def cal(s): if '+' in s ...
- centos7安装elasticsearch-head
elasticsearch-head安装前准备 1.操作系统64位CentOS Linux release 7.2.1511 (Core)2.git是必需的elasticsearch-head是一款开 ...
- /proc详解
内容摘要:Linux系统上的/proc目录是一种文件系统,即proc文件系统. Linux系统上的/proc目录是一种文件系统,即proc文件系统.与其它常见的文件系统不同的是,/proc是一种伪文件 ...
- python安装模块
pychram安装模块,非常简单!