【问题标题】:Is there a possibility of there ever being a PHP.NET?是否有可能存在 PHP.NET?
【发布时间】:2009-12-10 20:55:18
【问题描述】:

对不起,如果这是一个愚蠢和/或愚蠢的问题,但是... 是否会存在,或者甚至有可能拥有 PHP.NET?还是我弄错了?

在我看来,.NET 的要点之一是您可以使用多种 .NET 语言中的一种编写代码并将其编译成 CLR。这可能发生在 PHP 上,还是 PHP 有什么东西让这不可能发生?还是有更多的政治原因?

【问题讨论】:

  • 嗯,.Net 有一个 COBOL 端口,所以永远不要说永远:)
  • 如此真实......永远不要说永远,一切皆有可能,虽然有点与微软的大多数网络产品背道而驰
  • 令人惊讶的是,微软最近实际上已经投入了一些资源来使 PHP 在 Windows 上运行良好。他们甚至使安装变得微不足道。
  • 天哪,我希望不会。然后就不会因为“微软的成本太高”而让 PHP 人闭嘴了。
  • 您为什么要这样做? Windows 不必编译您自己的二进制文件...

标签: .net php clr


【解决方案1】:

实际上已经有人开始研究这样的事情了

http://www.codeplex.com/Phalanger

http://www.php-compiler.net/doku.php

【讨论】:

  • 开发 Phalanger 的人现在正在开发桃派peachpie.io
【解决方案2】:

顺便说一句:

我不认为 .Net 支持 PHP 会是个好主意。

我每天都在使用 PHP。这不是因为我喜欢这种语言(它是一组不匹配的函数,很少支持 OO),而是因为它是完成这项工作的最佳工具。

PHP 给人一种轻量级的感觉,只需几行简单的代码就可以完成几乎任何事情。它的字符串处理毫不费力,支持无处不在。数组处理也很棒。

我觉得如果 PHP 加入了 .Net CLR,我不会想转而使用它。如果想使用 .Net,最好使用一种更好、更好的结构化语言,例如 C#。

【讨论】:

  • 我不太确定你在说什么。你认为这不是一个好主意,因为你不会想要切换?至于它是轻量级的,.NET 有即将推出的 DLR,它不会像在常规 CLR 中运行那样给语言带来任何沉重的负担。
  • 我认为 PHP 不是一种结构良好的语言,不会向 .Net 框架添加任何内容。 PHP 更多的是大量有用的函数,.Net 类库已经提供了其中的大部分。所以 PHP .Net 本质上将是一个糟糕的 OO 实现,带有一些糟糕的语法......并且没有额外的好处。当然 PHP 是我选择的网络语言,但我认为它不适合 .Net。
  • 我不同意 1) 您可以将标准 PHP 编译为 .NET,然后从 C# 调用它或在 Windows 上更舒适地部署它 - 在这种情况下,您不会失去 PHP 的简单性全部。 2)对于一些企业项目(由于某种原因混合了.NET和PHP),能够顺利集成.NET和PHP是一个很大的优势。 (下面提到的Phalanger支持两种模式)
  • 恕我直言,将 PHP 移植到 .NET 的好处是将大量的 php 代码和经验转移到具有更长期潜力的环境中。降低将现有 Web 项目集成到基于同类最佳解决方案的统一全平台代码库的成本的垫脚石。比在任何地方都使用网络技术(HTML5+Javascript 应用程序——在软件设计方面倒退 20 多年,不,谢谢)。诚然,直到一直延伸到客户端浏览器,问题才得以解决,但这是迈出了重要的一步。
  • 澄清我的观点:有现有的 php 代码和程序员。希望在 .Net Core 3 中过渡到 Razor 组件,以更好地与 WPF 和 Xamarin Forms 应用程序代码库保持一致。不能证明重写所有现有的 Web 代码是合理的。希望 PeachPie 可以实现增量迁移。待定。
【解决方案3】:

我会说它不太可能因为有 ASP.net,但我不会因为 Python.NET 或 IronPython 而说永远不会。已经有一个尝试称为Phalanger.official wiki 的外观来看,这是一项严肃的开发工作。

【讨论】:

  • 开发 Phalanger 的人现在正在开发 peachpie,peachpie.io
【解决方案4】:

确实存在。它不叫 PHP.NET,而是 Phalanger(http://phalanger.codeplex.com)。它将 PHP 代码编译成 MSIL 指令。

它允许以所谓的遗留模式运行 PHP 应用程序(并且由于它已编译,您可以从更快的运行时间中受益),如果您想使用 PHP 中不存在的 CLR 功能,您可以打开 PHP/CLR编译器扩展。

还有所谓的纯模式,其中 PHP 语言被修改为更像 C# 或 Visual Basic。

我认为将 PHP 和 .NET 结合起来是个好主意,因为您可以两全其美。从 PHP 开始,它将快速开发和部署过程,陡峭的学习曲线,并且有很多很棒的 PHP 开源应用程序。在 .NET 方面,可验证的 ISO 标准化环境、性能、托管安全代码、高级开发工具……

【讨论】:

  • 开发 Phalanger 的人现在正在开发 peachpie,peachpie.io
【解决方案5】:

当然,有可能。毕竟Python runs in the CLR

旁注:PHP 现在是 IIS 的一键式安装,因此如果您正在等待将 PHP 引入您的 Microsoft 堆栈,请继续尝试。 MS 甚至正在开发PHP bytecode cache for Windows

【讨论】:

    【解决方案6】:

    一旦进入,我不明白为什么不这样做。

    http://en.wikipedia.org/wiki/Dynamic_Language_Runtime

    【讨论】:

      【解决方案7】:

      CLR 本质上是一个虚拟机,因此编译到它的方式基本上与将 C 代码编译到 x86 或 PowerPC 或 arm 或其他任何东西的方式相同。

      有一个可编译为 .NET 程序集的 python 实现,还有 COBOL 和其他一些。没有技术原因 PHP 不能在 IIS 中由 CLR 执行相同的操作。

      【讨论】:

      • 编译是微不足道的部分;使用上帝知道什么样的肮脏C技巧来移植庞大的PHP函数库是另一回事......
      【解决方案8】:

      .NET 是一个基于 CLR 等多项技术的框架,并提供了广泛的集合、组织良好的类库,这些类库几乎适用于 Web 应用程序中使用的所有可能的功能。此外,它还允许您轻松创建扩展框架的组件。

      虽然 PHP 具有类似的属性,例如 PEAR 库,但 PHP 和 ASP.NET 并不完全相同,因为 .NET 框架是基于 OOP 范式和基于 OOP 的方法,而 PHP 不是。这种区别最明显的方式,就是如何在 PHP 和 ASP.NET 中访问类和对象。

      【讨论】:

        【解决方案9】:

        两者完全不同,它们是相互竞争的。双方都将努力做好自己的事。所以我认为未来不会有这样的事情。但是,您可以在 Visual Studio 中使用 PHP,有可用的插件。

        谢谢

        【讨论】:

          【解决方案10】:

          PHP 与 Windows 的合作令人怀疑......这似乎并非不可能

          除了PHP.NET

          【讨论】:

            【解决方案11】:

            PHP 已经很好了。即使它变成了 PHP.NET,我怀疑它会被微软完成。

            【讨论】:

              【解决方案12】:

              您可以在 windows 上开发 php 以使用 windows 函数,并最终调用 .NET 对象。我相信 apache 现在允许 php 调用本机 Windows 调用/函数和 .NET 函数/类/对象,前提是您打开了正确的设置。

              至于 .NET 适配 php 语法,我想有些人正在尝试这样做,除了现有的尝试。

              【讨论】:

                【解决方案13】:

                您可以尝试jsc project,它将为您将 MSIL 转换为 php 源代码。

                这将使您能够在 Visual Studio 中编写 C# 代码并在廉价的 php 服务器上运行它。

                【讨论】:

                  猜你喜欢
                  • 2022-01-17
                  • 2010-09-07
                  • 1970-01-01
                  • 2011-09-03
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多