Объединение кода на Лиспе и PHP в одном приложении - PullRequest
17 голосов
/ 28 сентября 2008

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

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

Ответы [ 7 ]

9 голосов
/ 28 сентября 2008

Это не взаимоисключающий выбор, вы можете работать как на одной системе, так же, как perl и php (например) запускаются бок о бок на многих системах.

Здесь есть хороший пост на похожую тему, который предлагает использовать сокеты для общения между обоими языками -

Если вы хотите пойти по пути PHP <-> Lisp, проще всего было бы заставить PHP взаимодействовать с вашим процессом Lisp с помощью сокетов.

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

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

Этот подход все еще оставляет вас с потенциальными дополнительными сложностями и проблемами обслуживания, которые вы получаете из-за наличия двух языков в вашем проекте, но может подойти для вашего конкретного случая использования.

5 голосов
/ 28 сентября 2008

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

Hunchentoot - это популярный сервер, который предоставляет вам основы подключения диспетчеров к запросам. На LispCast.com

есть серия скринкастов по написанию Reddit клона .

UnCommon Web (звучит как каламбур в описании схемы Питером Норвигом в PAIP) - это то, что я могу сказать, более полная структура, основанная в основном на идее продолжения, очень похожая на Приморский 1010 * для Smalltalk.

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

2 голосов
/ 29 сентября 2008

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

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

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

1 голос
/ 29 сентября 2008

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

1 голос
/ 28 сентября 2008

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

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

0 голосов
/ 20 декабря 2012

Ознакомьтесь с интересным решением для объединения Lisp и PHP https://github.com/lisphp/lisphp

0 голосов
/ 01 октября 2009

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

Обзор здесь

Есть также несколько хороших методик на сайте, посвященном якобам Джейкоба Хансенса.

...