17

目前,我为 Web 开发的几乎所有东西都使用 PHP,但它的语言限制开始让我烦恼。然而,当我开发了一些实践并维护了一些对我有很大帮助的 PHP 库时,我觉得我还没有准备好切换到 LISP 来丢弃我所有的 PHP 输出。在我只能访问常规 LAMP 托管帐户的服务器上,这甚至是不可能的。

因此,我的问题是:LISP 代码可以与 PHP 代码结合使用吗?是否有并行 LISP/PHP 的解决方案,它们的互操作性接口或可能只是一个实现另一个?或者它是一个相互排斥的选择?

4

7 回答 7

9

这不是一个相互排斥的选择,您可以在一个系统上同时运行两者,就像 perl 和 php(例如)在许多系统上并行运行一样。

这里有一篇关于类似主题的好帖子,建议使用套接字在两种语言之间进行通信 -

如果你想走 PHP<->Lisp 路线,最简单的事情就是让 PHP 使用套接字与你的 Lisp 进程通信。

http://php.net/manual/en/ref.sockets.php

http://www.sbcl.org/manual/Networking.html

这种方法仍然会给您留下由于在项目中使用 2 种语言而可能增加的复杂性和维护问题,但可能适合您的特定用例。

于 2008-09-28T11:55:57.497 回答
5

一旦开始使用 Lisp 进行开发,您很可能不想用 PHP 编写代码。(顺便说一下,大约 80 年代以来的新大写字母)

Hunchentoot 是一个流行的服务器,它为您提供了将调度程序连接到请求方面的基础知识。在 LispCast.com上有一系列关于编写 reddit 克隆的截屏视频

UnCommon Web(听起来像是 Peter Norvig 对 PAIP 中 Scheme 的描述的双关语)来自我可以说的一个更完整的框架,该框架主要基于延续的想法,就像Smalltalk 的Seaside

Weblocks是另一个看起来不错的基于 continuation 的 Web 框架。作者 (at defmacro.org) 写的文章不错,我喜欢我在 Weblocks 示例应用程序中看到的内容。

于 2008-09-28T12:16:31.503 回答
2

我现在的情况几乎相同。我掌握了很多 PHP,但这种语言真的开始让我烦恼。我尝试过不同的语言,但最近对方案做了很多修改,我正在考虑逐步切换。也许我们应该启动一个用户组或其他什么?

由于具有 PHP 背景,您可能习惯于对 HTTP 协议进行较薄的抽象。我认为这实际上使过渡到新语言变得更加容易;尤其是其中没有一个占主导地位的框架。这样看来,PHP 和 Lisp 社区有一些相似之处(但其他碎片化的开源平台也有,比如 Python 和 Perl)。

Lisp 的一个问题是有太多的选择。我已经决定我更喜欢 Scheme 而不是 Common Lisp,这样可以稍微缩小范围。经过一些实验,我现在专注于plt-scheme,这似乎是最有动力的一个 Scheme。除此之外,它还捆绑了一个网络服务器。

于 2008-09-28T22:11:52.523 回答
1

不幸的是,我想不出任何库,但是我处于类似的情况,我有 PHP 代码,但厌倦了“尝试”在 PHP 中编写逻辑(游戏逻辑),所以我使用 PHP 套接字进行连接到 Lua,因此现在我在 Lua 中编写所有服务器端逻辑并使用 PHP(LAMP 设置)作为我的前端服务器。

希望有帮助。

于 2008-09-28T11:57:59.847 回答
1

我建议您尝试一下Weblocks

于 2008-09-29T17:27:47.860 回答
0

对于 PHP 中的普通网页开发,我制作了一个名为 xilla_tags 的库。

概述在这里

Jacob Hanssens bitchware 网站上也有一些很好的技术。

于 2009-10-01T05:28:19.117 回答
0

查看一个有趣的解决方案来结合 Lisp 和 PHP https://github.com/lisphp/lisphp

于 2012-12-20T08:33:39.697 回答