在同一应用程序中组合 Lisp 和 PHP 代码
目前,我几乎使用PHP为Web开发的所有内容,但它的语言限制开始让我烦恼。但是,当我开发了一些实践并维护了一些对我帮助很大的PHP库时,我不觉得我已经准备好切换到LISP来丢弃我所有的PHP输出。在服务器上,这甚至可能是不可能的,我所能访问的只是一个普通的LAMP托管帐户。
因此,我的问题是:LISP代码可以与PHP代码结合使用吗?是否有并排LISP / PHP的解决方案,用于其互操作性的接口或仅实现一种解决方案?还是一个相互排斥的选择?
目前,我几乎使用PHP为Web开发的所有内容,但它的语言限制开始让我烦恼。但是,当我开发了一些实践并维护了一些对我帮助很大的PHP库时,我不觉得我已经准备好切换到LISP来丢弃我所有的PHP输出。在服务器上,这甚至可能是不可能的,我所能访问的只是一个普通的LAMP托管帐户。
因此,我的问题是:LISP代码可以与PHP代码结合使用吗?是否有并排LISP / PHP的解决方案,用于其互操作性的接口或仅实现一种解决方案?还是一个相互排斥的选择?
这不是一个相互排斥的选择,你可以在一个系统上运行两者,就像perl和php(例如)在许多系统上并行运行一样。
这里有一篇关于类似主题的好文章,建议使用套接字在两种语言之间进行通信 -
如果你想走PHP<->Lisp路由,最简单的办法就是让PHP使用套接字与你的Lisp进程进行通信。
这种方法仍然会给您留下潜在的复杂性和维护问题,因为您的项目中有2种语言,但可能适合您的特定用例。
一旦你开始在Lisp中开发,你很可能不想用PHP编写代码。(顺便说一句,自大约80年代以来的新大写)
Hunchentoot是一个流行的服务器,它为您提供了将调度程序连接到请求的基础知识。有一系列关于在 LispCast.com 上编写reddit克隆的截屏视频
UnCommon Web(听起来像是Peter Norvig对PAIP中Scheme的描述的双关语)来自我所能讲述的一个更完整的框架,它主要基于延续的想法,就像Seaside for Smalltalk一样。
Weblocks是另一个基于延续的Web框架,看起来不错。作者(at)写了好文章,我喜欢我在Weblocks的示例应用程序中看到的内容。defmacro.org