2008-09-28 9 views
16

В настоящее время я использую PHP почти для всего, что я разрабатываю для Интернета, но его лингвистические ограничения начинают меня раздражать. Однако, поскольку я разработал некоторые практики и поддерживаю некоторые PHP-библиотеки, которые мне очень помогают, я не чувствую, что буду готов просто переключиться на LISP, отбросив весь мой вывод PHP. Это может быть даже невозможно на серверах, где все, к которым у меня есть доступ, является обычной учетной записью хостинга LAMP.Сочетание кода Lisp и PHP в том же приложении

Ergo, мои вопросы: Может ли код LISP быть просто объединен с PHP одним? Существуют ли решения для бок о бок LISP/PHP, интерфейс для их взаимодействия или perphaps только реализация одного для другого? Или это взаимоисключающий выбор?

ответ

8

Это не взаимоисключающий выбор, вы можете запускать обе системы, точно так же, как 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 языка в вашем проекте, но может быть пригодным для вашего конкретного случая использования ,

1

К сожалению, я не могу думать о каких-либо библиотеках для этого, однако я был в аналогичной ситуации, где у меня был PHP-код, но устал от «попытки» кодировать логику (логику игры) в PHP, поэтому я использовал Сокеты PHP для подключения к Lua, поэтому теперь я программирую всю логику серверов в Lua и использую PHP (настройки LAMP) в качестве моего внешнего сервера.

Надеюсь, что это поможет.

4

Скорее всего, вы не захотите написать код на PHP после того, как приступаете к разработке в Lisp. (Новая капитализация с 80-х годов, кстати)

Hunchentoot - популярный сервер, который дает вам основы с точки зрения подключения диспетчеров к запросам. Там в ряд screencasts on writing a reddit clone на LispCast.com

UnCommon Web (звучит как каламбур на описании Питера Норвиг о схеме в PAIP) от того, что я могу сказать, более полную структуру сильно основанную на идее продолжений, так же, как Seaside для Болтовня.

Weblocks - еще одна основанная на продолжении веб-структура, которая выглядит красиво. Автор (в defmacro.org) пишет хорошие статьи, и мне нравится то, что я видел в примере приложения для Weblocks.

+0

Не зуб, как укус, но гудок, как в гудком. – jfm3 2008-09-28 16:24:00

2

В настоящее время я в такой же ситуации. У меня много PHP под моим поясом, но язык действительно начинает меня раздражать. Я экспериментировал на разных языках, но недавно поработал со схемой, и я размышляю о постепенном переключении. Может быть, мы должны начать группу пользователей или что-то еще?

Исходя из фона PHP, вы, вероятно, привыкли работать с тонким уровнем абстракции по протоколу HTTP.Я думаю, что это то, что на самом деле облегчает переход на новый язык; Особенно тот, где нет ни одной доминирующей структуры. Таким образом, PHP и сообщество Lisp имеют некоторое сходство (но также другие фрагментированные платформы с открытым исходным кодом, такие как Python и Perl).

Одна проблема с Lisp заключается в том, что на выбор очень много. Я решил, что предпочитаю Scheme над Common Lisp, так что это немного сужает его. После некоторых экспериментов я теперь фокусируюсь на plt-scheme, который, кажется, является одним из схем с наибольшим импульсом. Помимо всего прочего, у него есть веб-сервер в комплекте с ним.

1

Я рекомендую вам попробовать в Weblocks.

+0

URL-адрес должен быть http://common-lisp.net/project/cl-weblocks/ – Friedrich 2009-10-01 05:31:10

0

Для нормальной разработки веб-страниц в PHP Ive создал lib под названием xilla_tags.

Обзор here

Есть также некоторые хорошие методы на Якоба Hanssens bitchware сайта.