PHP的替代品?

Posted

技术标签:

【中文标题】PHP的替代品?【英文标题】:PHP alternatives? 【发布时间】:2011-01-01 17:40:01 【问题描述】:

是否有替代 php 的替代品,它们执行速度更快并且具有相同的功能集(例如支持常见的 RDBMS、Curl、Regex 等)?

用 C 语言编码网站怎么样?效果如何?该平台是否独立并在每台服务器上运行?

【问题讨论】:

也许你应该指出你在使用 PHP 时遇到了什么问题(如果有的话) 通常瓶颈在等待数据库。分析您的应用程序/网站,看看是什么阻碍了它。 您应该指出您在使用 PHP 时遇到的问题。并查看使用哪些语言无关技术来提高 Web 应用程序性能 - developer.yahoo.com/performance 这篇博文可能有用:hackr.io/blog/top-10-alternatives-to-php-in-2018 【参考方案1】:

如果你喜欢 javascript,你可以在服务器端使用 Node.js

【讨论】:

【参考方案2】:

用 C 语言编码网站怎么样?效果如何?该平台是否独立并在每台服务器上运行?

用 C 编写平台无关代码是完全可能的。 (PHP 本身是用 C 编写的,而用 C 编写的跨平台程序和库的数量多得离谱,比如 PostgreSQL 和 mysql、Boost 和 Poco C++)。

另一方面,编写独立于平台的网络应用程序主要取决于您如何与 HTTP 服务器集成。例如,如果您编写的 C 应用程序通过已编译的模块(用于 Apache 或 IIS)直接与 HTTP 服务器集成,那么您最终会得到可移植性较差的代码 - 例如,编写 IIS C 或 Delphi 中的模块(我已经看到完成,eBay 最初也是这样做的)意味着您不仅锁定到 Windows,而且还锁定到 Windows 上的 IIS .用 C 编写 Apache 模块时的情况类似。

但是,如果您用 C 编写一个 Web 应用程序,该应用程序通过通用标准与 HTTP 服务器集成,那么是的,您可以拥有相当可移植的代码(尽管代码必须在每个平台上编译)。例如,您可以使用 CGI 通过环境变量与 HTTP 服务器进行通信,也可以使用相关标准 FastCGI 和 SCGI。同样,我已经在实际的商业应用中看到了这种做法(效果很好,也很糟糕)。

关于原生 Web 应用程序(例如,用 C、C++ 等编写)与解释型 Web 应用程序(PHP、Perl 等)的争论通常集中在三个领域。

代码性能。除非它是由一个没有得到写幸运饼干工作的脑死猴子编写的,否则 C 代码将永远胜过 PHP。但是,应用程序的瓶颈可能不在于代码的速度和内存消耗,而在于输入/输出例程。 开发人员生产力。除非您使用一个好的框架(并且您的部分问题是关于其他语言的功能集),否则您将编写大量的样板代码、重复代码。例如,解码百分比编码的 URL、解析 HTTP POST 数据等。C 和 C++ 中存在用于此目的的框架(请参阅 CppCMS)。 便携性,正如您所提到的。如果您对用 C 编写 Web 应用程序一无所知,我会坚持使用 CGI 或 SCGI。

【讨论】:

【参考方案3】:

“有没有 PHP 的替代品” - 是的

“……执行得更快……” - 是的

“...相同的功能集...” - 不 - 这会使 PHP 变得多余。

您问的是一个非常广泛的问题。有很多语言也支持各种 DBMS、PCRE 和其他东西。

“用 C 语言编写网站怎么样?效果如何?该平台是否独立并适用于每个服务器?”

不,它与平台无关。

基于如此广泛的问题,很难为您指明具体方向。

您可能想阅读以下内容:

http://benchmarksgame.alioth.debian.org/

但请注意,软件的大部分成本在于开发 - 硬件很便宜 - 因此能够用一半的代码行实现某些东西对大多数人来说比将性能翻倍更有利。

使用特定语言也有不太明显的限制和/或优势 - 例如。

http://www.oreillynet.com/ruby/blog/2007/09/7_reasons_i_switched_back_to_p_1.html

C.

【讨论】:

Urk,我讨厌那篇文章。 “我切换回 PHP 的 7 个原因”经常被描述为对 Rails 的某种攻击,但实际上并非如此——这证明了作者的无知。他的第一句话是“我花了两年时间试图让 Rails 做一些原本不该做的事情……”。文章的其余部分可以替换为“......所以我有点白痴浪费了 2 年。” “您可能想阅读这篇文章” - 特别是“总体性能:PHP 很少成为瓶颈(HTML 幻灯片)”talks.php.net/show/drupal08/7 :-) 否决了您的“不,它与平台无关”的答案,因为这主要取决于您如何与 HTTP 服务器集成。 因此,只要您使用一致的集成方法(这肯定是矛盾的说法?),它就独立于平台,但没有解决围绕文件访问、内存管理的不同语义(有时是语法),网络连接,日志记录.....(OTOH,我接受其中一些是 PHP 平台特定的)【参考方案4】:

如果您的问题是网站或 Web 应用程序看起来太慢,那么切换语言可能不值得。有很多更有效的方法可以加快速度。其中之一是代码缓存,以避免在每个页面请求上重新编译 PHP 脚本的开销。参见例如http://en.wikipedia.org/wiki/PHP_accelerator。我个人使用 XCache 效果很好。

网站运行速度慢的原因还有很多,其中许多与底层语言完全无关。 YSlow (http://developer.yahoo.com/yslow/) 是一个不可或缺的工具来找到你的瓶颈。仅举一个例子,将 HTML 页面中包含的多个 CSS 或 JS 文件组合到一个文件中可以显着缩短响应时间。

所以底线:在大多数情况下,底层语言不是罪魁祸首。说了这么多,是的,有更快的语言。请参阅上面的其他答案:)

【讨论】:

是的。查看 HipHop PHP,将 PHP 编译为 C 代码,性能提升 50%。【参考方案5】:

Perl (CGI)

Python

RoR(Ruby On Rails)

ASP(不是最佳选择)

很确定如果你要用 C 编写一个网站,你也会编写你自己的网络服务器,所以我会远离那个。

RoR 将是一个不错的选择。但这仅取决于您的个人喜好。我倾向于坚持使用 php,因为我知道如何用 PHP 做几乎所有事情。

【讨论】:

【参考方案6】:

PHP 直接插入 Apache。

C 没有。要将 C 与 Apache 连接起来,您必须使用一些安全/快速的 CGI 实现而不是现成的 CGI。

C——作为一种语言——在构建网站方面需要做很多工作。

查看 Python 中的 Web 框架。

看看 Ruby on Rails。

【讨论】:

您并没有真正回答问题,有些信息不正确。 C 确实 通过 Apache 模块直接与 Apache 集成。例如,mod_rewrite、mod_env 等。如您所提到的,C 为 CGI/FastCGI/SCGI/等间接集成。【参考方案7】:

你的问题很笼统。

PHP 可以变得快速且可扩展(Flickr、Facebook 和更多网站运行 PHP)

类似于 Ruby on Rails、Django、Lift 等 Web 框架的用途(这些也可以扩展,参见 Twitter)

C 中 CGI 的简短介绍:http://www.cs.tut.fi/~jkorpela/forms/cgic.html

【讨论】:

非常小的更正:应用程序可以使 PHP 构建的速度更快,这是真的 - 但语言本身本质上不能“快速”,或者至少并不是说系统语言(C、C++、Go 等)速度很快。该语言本身依赖于以系统语言编写的运行时,和/或也(大部分)以系统语言编写的外部服务(DBMS 等),用于任何对性能至关重要的事情。

以上是关于PHP的替代品?的主要内容,如果未能解决你的问题,请参考以下文章

什么是 ASP.NET / PHP 的主流 Java 替代品

PHP nodeValue剥离html标签-innerHTML替代品?

PHP Cakephp中的CURL替代品

php7中is_ref__gc的替代品是啥

PHP 7.2 中 mcrypt_encrypt 的完全替代品

Php 的替代语法