【发布时间】:2011-06-14 15:03:09
【问题描述】:
在 Haskell Web 开发世界中发生了一些伟大的事情,一些可用的框架(Yesod 和 Snap 服务器)似乎相当成熟。但是学习曲线可能有点陡峭,也许构建 Web 应用程序并不能完全被认为是 Haskell 的强项。
另一个SO question of mine 的回答表明应该可以在Haskell 中编写PHP 扩展。事实上,我目前正在尝试将一个小型 Haskell 程序转换为 PHP 扩展作为概念证明。
所以,问题是 - 是否有一个案例可以创建一个旨在作为 PHP 扩展运行的 Haskell Web 框架,并将所有请求/响应/cookie 等处理留给 PHP ?
创建这样一个框架会涉及哪些设计决策?现在,我唯一能想到的就是它可能会暴露一个 XML/JSON API 可供 PHP 页面使用 GET 和 SET 函数调用访问。
【问题讨论】:
-
专门针对 PHP,我对此表示怀疑,只是基于文化。但可能有一些中间件最终会与 php 一起工作。
-
仅在 Happstack 或 Snap 服务器之上使用基本 Web 方法的学习曲线是最小的。复杂性仅来自 snap 或 yesod 提供的大型站点的各种脚手架以及各种持久性方法和自以为是的模板系统。如果您忽略这些东西(使用 yesod 并不那么容易,但使用 happstack 或 snap 甚至只是 fastcgi 非常简单),那么 php 真的没有任何优势。
-
@sclv:嗯? Yesod有什么难的?我制作了一些玩具应用程序来尝试一下,即使不知道我在做什么,它似乎也很容易上手。也感觉它没有比 Rails 更多的充满黑魔法的黑匣子。诚然,我并没有走得太远,也没有做太多的坚持,所以也许在某些时候它会变得更棘手?更好的文档会更好,但我认为这是一项正在进行的工作。
-
@camcann -- 我同意 yesod 并不比 rails 更神奇。但大卫布莱恩也不是。我不这么认为,例如键入安全路径和小村庄等非常困难。它们只是与人们习惯的不同。因此,“最小”站点的前期工作涉及一定的学习曲线,您只会看到更大站点的回报。但这不是 Haskell 的问题——Python 或其他任何框架中的框架也是如此。前一周我查看了 pylons 文档,发现它完全难以理解。
-
@sclv:我想是的。在我看来,Yesod 中的大多数困难的东西都可以在没有太多理解的情况下广泛使用,很大程度上推迟了学习曲线。显然,总的来说,我对 Haskell 很满意,并且 Web 开发支付了我的账单,但我仍然不知道 Yesod 的内部是如何工作的。然而,仅仅通过粗略地模仿我在别处看到的例子,我在小型网站上已经走得很远了。
标签: php haskell web-frameworks