在同一个应用程序中结合Lisp和PHP代码

问题描述:

目前我使用PHP来开发Web的几乎所有东西,但它的语言限制已经开始令我烦恼。但是,由于我开发了一些练习并且维护了一些帮助我很多的PHP库,所以我不觉得我已经准备好转换到LISP来丢掉所有的PHP输出。在所有我可以访问的服务器上,甚至可能都不可能是常规的LAMP托管帐户。在同一个应用程序中结合Lisp和PHP代码

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

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

有一个类似的话题,这表明使用套接字两种语言之间进行通信的good post here -

如果你想要去的PHP < - > Lisp的路线easyest要做的是使PHP使用套接字与您的Lisp进程进行通信。

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

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

这种方法确实还留给你可能增加的复杂性和维护问题,你在你的项目中有2种语言,但可能是您的特定用例合适。

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

希望有所帮助。

一旦你开始在Lisp中开发,你很可能不想用PHP编写代码。 (大约80年代以来的新大写,顺便说一下)

Hunchentoot是一个流行的服务器,它可以让您了解将调度程序连接到请求的基本知识。还有在一系列的screencasts on writing a reddit clone LispCast.com

UnCommon Web(听起来像在PAIP彼得·诺维格的方案描述一个双关语)是从什么我可以告诉很大程度上基于延续的想法更完整的框架,很像Seaside为短暂聊天。

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

+0

没有牙齿,如咬,但嘟嘟,如按喇叭。 – jfm3 2008-09-28 16:24:00

我现在几乎处于相同的状况。我身边有很多PHP,但语言真的开始让我烦恼。我已经尝试过不同的语言,但最近在方案上做了很多修改,我正在考虑逐步切换。也许我们应该开始一个用户组或什么?

从PHP背景来看,您可能习惯使用HTTP协议的抽象级别。我认为这实际上使它更容易转变为一种新的语言;尤其是一个没有一个主流框架的地方。通过这种方式,PHP和Lisp社区有一些相似之处(但其他分散的开源平台也是如此,例如Python和Perl)。

Lisp的一个问题是,有太多可供选择的问题。我决定我比Common Lisp更喜欢Scheme,以便缩小它的范围。经过一番试验后,我现在专注于plt-scheme,这似乎是一个动力最强的方案。除此之外,它还捆绑了一个Web服务器。

我建议你试试Weblocks

+0

网址应该是 http://common-lisp.net/project/cl-weblocks/ – Friedrich 2009-10-01 05:31:10

对于PHP中正常的网页开发,Ive制作了一个名为xilla_tags的库。

概述here

也有雅各Hanssens bitchware网站一些好的技术。

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