使用PHP作为“前端”的Haskell Web应用程序

时间:2011-06-14 15:03:10

标签: php haskell web-frameworks

Haskell Web开发世界中发生了很多事情,一些可用的框架(Yesod和Snap服务器)看起来非常成熟。然而,学习曲线可能有点陡峭,也许构建Web应用程序不能完全被视为Haskell的强项。

另一个SO question of mine的答案表明应该可以在Haskell中编写PHP扩展。事实上,我目前正在尝试将小型Haskell程序转换为PHP扩展,作为概念证明。

所以,问题是 - 是否存在创建Haskell Web框架的情况,该框架旨在作为PHP扩展运行并将所有请求/响应/ cookie等处理留给PHP

创建此类框架涉及哪些设计决策?现在,我唯一能想到的是它可能会使用GET和SET函数调用公开PHP页面可访问的XML / JSON API。

1 个答案:

答案 0 :(得分:11)

我想不出一个有用的用例。如果你想要其他东西来处理HTTP请求/响应,你最好直接写入Apache API。

PHP简介为您提供了参数解析和cookie处理,但也引入了许多其他愚蠢。许多常见做法不仅非常不安全或不安全,而且仅限于内容生成 - 如果您希望根据您自己编写的URL发送到其他代码部分。许多成熟的PHP程序最终只有一个“启动”PHP脚本。如果你想对上传的文件做任何有趣的事情,你也会遇到问题,因为PHP以次优的方式处理它。

理论上你可以在Haskell扩展中做一些非常耗费处理器的事情,但在这种情况下你也可以为PHP编写一个C扩展。不管怎样,PHP调用永远不应该存在很长时间。

似乎你正在限制自己使用PHP的大脑损坏的Web应用程序模型,以获得参数和头文件解析的非常微不足道的好处。

将一个Haskell接口编写到Apache API可能会解放。您可以依赖经过实战考验的Web服务器,并且还可以进入Apache请求周期的每个阶段。 Apache时不时地预备和杀死孩子的方式可能是处理Haskell空间泄漏的一种方式,尽管它是一种大锤方法。

相关问题