在同一应用程序中结合Lisp和PHP代码
目前,几乎所有我为Web开发的东西都使用PHP,但是它的语言局限性开始困扰我。但是,当我开发一些实践并维护一些对我有很大帮助的PHP库时,我觉得我不准备只使用LISP丢弃所有PHP输出。在我只能使用常规LAMP托管帐户访问的服务器上,这甚至是不可能的。
恩,我的问题是:
LISP代码可以仅与PHP结合使用吗?是否有用于并行LISP / PHP的解决方案,用于其互操作性的接口或者仅将一种实现用于另一种实现?还是互斥的选择?
解决方案
这不是一个互斥的选择,我们可以在一个系统上同时运行这两种方法,就像在许多系统上并行运行perl和php(例如)一样。
这里有一篇类似主题的好文章,它建议使用套接字在两种语言之间进行通信-
If you want to go the PHP<->Lisp route the easyest thing to do would be to make PHP communicate with your Lisp-process using sockets. http://php.net/manual/en/ref.sockets.php http://www.sbcl.org/manual/Networking.html
这种方法的确会给我们带来潜在的复杂性和维护问题,因为我们在项目中使用了两种语言,但是可能适合特定用例。
不幸的是,我无法为此考虑任何库,但是我处在类似的情况下,我拥有PHP代码,但是厌倦了"尝试"在PHP中编写逻辑(游戏逻辑)代码,因此我使用了PHP套接字进行连接到Lua,因此现在我在Lua中编写所有服务器端逻辑,并使用PHP(LAMP setting)作为前端服务器。
希望能有所帮助。
一旦开始使用Lisp开发,我们很可能不想用PHP编写代码。 (顺便说一句,大约80年代以来的新大写字母)
Hunchentoot是一种流行的服务器,它为我们提供了将调度程序连接到请求的基础知识。在LispCast.com上有一系列关于编写Reddit克隆的截屏视频
通过我可以说出一个非常完整的框架,该框架很大程度上是基于延续性的思想,就像Seaside for Smalltalk一样。
Weblocks是另一个不错的基于延续的Web框架。作者(位于defmacro.org
)写的文章不错,我喜欢在Weblocks示例应用程序中看到的内容。
目前,我处于几乎相同的情况。我有很多PHP,但是这种语言确实开始惹恼我。我尝试了不同的语言,但是最近对方案进行了很多修改,并且我正在考虑逐步进行切换。也许我们应该启动一个用户组之类的?
来自PHP背景,我们可能已经习惯于对HTTP协议进行抽象的抽象处理。我认为这实际上使更容易过渡到新语言。特别是没有一个主导框架的框架。这样,PHP和Lisp社区有一些相似之处(但是其他零散的开源平台也是如此,例如Python和Perl)。
Lisp的问题之一是有太多选择。我已经决定与Common Lisp相比,我更喜欢Scheme,从而使它的范围缩小了一点。经过一些实验后,我现在专注于plt方案,这似乎是最有发展势头的方案。除其他外,它还捆绑了一个Web服务器。
我建议我们尝试一下Weblocks。
为了使用PHP进行正常的网页开发,Ive创建了一个名为xilla_tags的库。
这里概述
雅各布·汉森(Jacob Hanssens)的母狗网站上也有一些不错的技术。