2008-09-28 16 views
16

Hiện tại tôi sử dụng PHP cho hầu hết mọi thứ tôi phát triển cho Web nhưng giới hạn ngôn ngữ của nó đang bắt đầu làm phiền tôi. Tuy nhiên, khi tôi phát triển một số thực hành và duy trì một số thư viện PHP giúp tôi rất nhiều, tôi không cảm thấy mình sẵn sàng chuyển sang LISP, bỏ đi tất cả đầu ra PHP của tôi. Nó thậm chí có thể là không thể trên các máy chủ, nơi tất cả tôi có quyền truy cập vào là một tài khoản lưu trữ LAMP thường xuyên.Kết hợp mã Lisp và PHP trong cùng một ứng dụng

Ergo, câu hỏi của tôi là: Mã LISP có thể được kết hợp với PHP không? Có các giải pháp cho LISP/PHP song song, giao diện cho khả năng tương tác của chúng hoặc các perphaps chỉ là việc triển khai một cho nhau không? Hoặc nó là một sự lựa chọn lẫn nhau?

Trả lời

8

Đây không phải là lựa chọn độc quyền lẫn nhau, bạn có thể chạy cả hai trên một hệ thống, giống như cách perl và php (ví dụ) được chạy song song trên nhiều hệ thống.

Có một good post here về một chủ đề tương tự, trong đó cho thấy sử dụng socket để giao tiếp giữa cả hai ngôn ngữ -

Nếu bạn muốn đi PHP < -> Tuyến Lisp điều easyest làm sẽ là để làm cho PHP giao tiếp với quá trình Lisp của bạn bằng cách sử dụng ổ cắm.

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

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

Cách tiếp cận này hiện vẫn còn để lại cho bạn khả năng thêm phức tạp và bảo trì các vấn đề bạn nhận được từ có 2 ngôn ngữ trong dự án của bạn, nhưng có thể là một sự phù hợp đối với trường hợp sử dụng cụ thể của bạn .

1

Thật không may là tôi không thể nghĩ về bất kỳ thư viện nào, tuy nhiên tôi đã ở trong tình huống tương tự, nơi tôi có mã PHP, nhưng đã mệt mỏi vì cố gắng mã logic (logic trò chơi) trong PHP, vì vậy tôi đã sử dụng Các ổ cắm PHP để kết nối với Lua, vì vậy bây giờ tôi lập trình tất cả các logic serveride trong Lua và sử dụng PHP (LAMP setting) làm máy chủ giao diện người dùng của tôi.

Hy vọng điều đó sẽ hữu ích.

4

Bạn rất có thể không muốn viết mã bằng PHP khi bạn đã bắt đầu phát triển trong Lisp. (Viết hoa mới từ khoảng thập niên 80, nhân tiện)

Hunchentoot là một máy chủ phổ biến cung cấp cho bạn những điều cơ bản về kết nối điều phối với các yêu cầu. Có một loạt các screencasts on writing a reddit clone tại LispCast.com

UnCommon Web (nghe có vẻ giống như một sự chơi chữ mô tả Peter Norvig của Đề án trong PAIP) là từ những gì tôi có thể nói với một khuôn khổ hoàn chỉnh hơn dựa rất nhiều vào ý tưởng về sự tiếp tục, giống như Seaside cho Smalltalk.

Weblocks là một khuôn khổ web dựa trên sự tiếp tục khác có vẻ đẹp. Tác giả (tại defmacro.org) viết các bài viết hay và tôi thích những gì tôi đã thấy trong ứng dụng mẫu cho Weblocks.

+0

Không răng, như trong cắn, nhưng thổi còi, như trong honk. – jfm3

2

Tôi đang ở khá nhiều tình huống tương tự tại thời điểm này. Tôi có rất nhiều PHP dưới thắt lưng của tôi, nhưng ngôn ngữ thực sự bắt đầu làm phiền tôi. Tôi đã thử nghiệm với các ngôn ngữ khác nhau, nhưng đã được sửa đổi rất nhiều với kế hoạch gần đây, và tôi đang dự tính một công tắc dần dần. Có lẽ chúng ta nên bắt đầu một nhóm người dùng hoặc một cái gì đó?

Xuất phát từ nền PHP, có thể bạn đang sử dụng để làm việc với mức trừu tượng mỏng đối với giao thức HTTP.Tôi nghĩ rằng đây là một cái gì đó thực sự làm cho nó dễ dàng hơn để chuyển đổi sang một ngôn ngữ mới; Đặc biệt là một, nơi không có một khuôn khổ thống trị. Theo cách này, PHP và cộng đồng Lisp có một số điểm tương đồng (Nhưng các nền tảng mã nguồn mở bị phân mảnh khác, chẳng hạn như Python và Perl).

Một vấn đề với Lisp là có quá nhiều lựa chọn. Tôi đã quyết định rằng tôi thích Scheme trên Common Lisp, để thu hẹp nó xuống một chút. Sau một số thử nghiệm, bây giờ tôi đang tập trung vào plt-scheme, mà dường như là một Đề án có nhiều động lượng nhất. Trong số những thứ khác, nó có một máy chủ web đi kèm với nó.

0

Để phát triển trang web thông thường trong PHP, Ive đã tạo một lib có tên là xilla_tags.

Tổng quan here

Ngoài ra còn có một số kỹ thuật tốt trên trang web Jacob Hanssens bitchware.

Các vấn đề liên quan