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

时间:2008-09-28 11:33:40

标签: php web-applications interop lisp

目前我使用PHP几乎所有我为Web开发的东西,但它的语言限制开始让我恼火。但是,当我开发一些实践并维护一些对我有帮助的PHP库时,我觉得我不准备只是切换到LISP丢弃我所有的PHP输出。在我可以访问的所有服务器上,甚至可能无法访问常规的LAMP主机帐户。

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

7 个答案:

答案 0 :(得分:9)

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

在类似主题上有good post here,建议使用套接字在两种语言之间进行通信 -

  

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

     

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

     

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

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

答案 1 :(得分:5)

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

Hunchentoot是一款流行的服务器,它为您提供了将调度程序连接到请求方面的基础知识。在LispCast.com上有一系列screencasts on writing a reddit clone

UnCommon Web(听起来像是Peter Norvig对PAIP中Scheme的描述)是我可以告诉更完整的框架,它基于延续的概念,就像Smalltalk的Seaside一样。

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

答案 2 :(得分:2)

此刻我的情况几乎相同。我有很多PHP,但语言真的开始惹恼我。我已经尝试了不同的语言,但最近对方案进行了很多修改,我正在考虑逐步转换。也许我们应该启动一个用户组或什么?

来自PHP背景,您可能习惯于使用HTTP协议的精简抽象级别。我认为这实际上更容易转换成新语言;特别是一个没有一个主导框架的地方。通过这种方式,PHP和Lisp社区有一些相似之处(但其他支离破碎的开源平台也是如此,例如Python和Perl)。

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

答案 3 :(得分:1)

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

希望有所帮助。

答案 4 :(得分:1)

我建议您试试Weblocks

答案 5 :(得分:0)

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

概述here

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

答案 6 :(得分:0)

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