2008-09-28 13 views
16

W tej chwili używam PHP do prawie wszystkiego, co rozwijam w Internecie, ale ograniczenia językowe zaczynają mnie denerwować. Jednakże, kiedy opracowałem pewne praktyki i utrzymywałem pewne biblioteki PHP, które bardzo mi pomogły, nie sądzę, bym był gotowy, aby po prostu przełączyć się na LISP wyrzucając wszystkie moje wyniki PHP. Może to być nawet niemożliwe na serwerach, gdzie wszystko, do czego mam dostęp, to zwykłe konto hostingowe LAMP.Łączenie kodu Lisp i PHP w tej samej aplikacji

Ergo, moje pytania to: Czy kod LISP można po prostu połączyć z PHP? Czy istnieją rozwiązania dla LISP/PHP obok siebie, interfejs dla ich interoperacyjności lub perfuzji, a jedynie implementacja jednego dla drugiego? Czy jest to wykluczający się wybór?

Odpowiedz

8

Nie jest to wykluczający się wybór, można uruchamiać oba w jednym systemie, w taki sam sposób, jak perl i php (na przykład) są uruchamiane obok siebie na wielu systemach.

Jest good post here na podobny temat, co sugeruje użycie gniazda do komunikacji między obu językach -

Jeśli chcesz iść PZP < -> LISP prowadź easyest rzeczą byłoby zrobić w PHP komunikować się z procesem Lisp za pomocą gniazd.

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

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

Takie podejście ma nadal zostawiają cię z potencjalną dodaje złożoność i utrzymanie problemów można uzyskać z konieczności 2 języków w projekcie, ale może być odpowiednie dla konkretnego przypadku użycia .

1

Niestety nie mogę wymyślić żadnych bibliotek do tego, jednak byłem w podobnej sytuacji, w której miałem kod PHP, ale zmęczyłem się "próbą" kodowania logiki (logiki gry) w PHP, więc użyłem Gniazda PHP do połączenia z Lua, więc teraz programuję logikę wszystkich serwerów w Lua i używam PHP (ustawienie LAMP) jako mojego serwera frontendowego.

Nadzieję, że pomaga.

4

Najprawdopodobniej nie będziesz chciał pisać kodu w PHP po rozpoczęciu pracy w Lisp. (Nawiasem mówiąc, nowa kapitalizacja od około 80.)

Hunchentoot jest popularnym serwerem, który zawiera podstawowe informacje na temat łączenia dyspozytorów z żądaniami. Jest to seria screencasts on writing a reddit clone w LispCast.com

UnCommon Web (brzmi jak gra słów na opis Petera Norvig za Schematu w PAIP) jest od tego, co mogę powiedzieć pełniejszy ramy opartej w dużym stopniu na pomysł kontynuacji, podobnie jak Seaside dla Pogawędka.

Weblocks to kolejna kontynuująca architektura sieciowa, która wygląda ładnie. Autor (w defmacro.org) pisze dobre artykuły i podoba mi się to, co widziałem w przykładowej aplikacji dla Weblocks.

+0

Not ząb, jak w ugryzienia, ale trąbienie, jak w Honk. – jfm3

2

Jestem w podobnej sytuacji w tej chwili. Mam dużo PHP pod moim pasem, ale język naprawdę zaczyna mnie denerwować. Eksperymentowałem z różnymi językami, ale ostatnio majstrowałem przy schemacie i rozważam stopniowe przełączanie. Może powinniśmy założyć grupę użytkowników lub coś takiego?

Pochodzących z tła PHP, prawdopodobnie przyzwyczaiłeś się do pracy z cienkim poziomem abstrakcji do protokołu HTTP.Myślę, że jest to coś, co w rzeczywistości ułatwia przejście do nowego języka; Zwłaszcza jeden, w którym nie ma jednej dominującej struktury. W ten sposób społeczności PHP i Lisp mają pewne podobieństwa (podobnie jak inne rozdrobnione platformy open source, takie jak Python i Perl).

Jednym z problemów z Lisp jest to, że jest tak wiele do wyboru. Zdecydowałem, że wolę Scheme od Common Lisp, więc to trochę zawęża. Po kilku eksperymentach skupiam się na plt-scheme, który wydaje się być jedynym Schematem o największej rozpędu. Między innymi ma dołączony do niego serwer sieciowy.

1

Polecam, aby spróbować na Weblocks.

+0

Adres URL powinien być następujący: http://common-lisp.net/project/cl-weblocks/ – Friedrich

0

Dla normalnego tworzenia stron WWW w PHP, stworzyłem bibliotekę o nazwie xilla_tags.

Przegląd here

Istnieje również kilka dobrych technik na miejscu Jacoba Hanssens bitchware.

Powiązane problemy