php ile Erlang uygulama arabirim

5 Cevap php

I have a website built with PHP. I have an Erlang application running as a daemon on the same server. I need to call functions on the Erlang application from PHP and get back the result.

PHP / Erlang bulundu ve PHP modülleri üzerinde ama ben bu sunucuda bir PHP modülünü kuramazsınız ettik, ben sadece PHP kodu kullanabilirsiniz.

Bunu çözmek için bildiğim tek yolu PHP konuşmak mümkün olacak yerel bir Erlang web sunucusu çalıştırılır.

Is there a better way to solve it? If using a httpd server is the best way, what Erlang server should I use? It should be as light as possible and doesn't need features like SSL and doesn't need to handle large load.

Teşekkürler

5 Cevap

Böyle mochiweb erlang kod barındıran bir web sunucusu çalıştırmak istiyorum. PHP kodu curl mochiweb için JSON kodlanmış http sorguları göndermek için kullanabilirsiniz. Mochiweb JSON kodlayıcı / kod çözücü vardır ve PHP yerli JSON desteği vardır.

Her şey aynı sunucuda olsa bile, sadece HTTP kullanın. Tüm düşük seviyeli şeyler Kolları ve ölçek gerekiyorsa HTTP ile ölçekleme çözülmüş bir sorun olarak, bu daha kolay olacaktır. Mochiweb hafif ve yüksek performansa sahiptir.

Belki bir tür boru kullanabilirsiniz: Erlang I / O yuvası mükemmeldir?

Bu kesin bir WEB sunucusu katmanı sayesinde daha doğrudan olurdu.

Bir sistem port aracılığıyla / Erlang dışında veri almak için fonksiyonları erlang:open_port ve erlang:port_command işlevlerini kullanın.

$ Cat erl.erl

#!/usr/bin/env escript

main(Args) ->
    io:format("~p\n", [Args]),
    io:format("~p\n", [(catch test(Args))]).

test([N1,N2|_]) ->
    lists:seq(list_to_integer(N1),list_to_integer(N2)).

$ Chmod + x erl.erl

$ Cat php.php

?php
var_dump(exec("./erl.erl 1 5"));
?>

$ Php php.php

string (11) "[1,2,3,4,5]"

erl_call bakabilirsiniz. http://www.erlang.org/doc/man/erl_call.html

Bu erlang bir işlevi çağırmak için kullanılan bir Unix programdır. Bu, bir kukla erl düğümü başlangıç ​​komutunu (ler) yürütmek ve sonuç dönecektir. Sen erl_call aramak ve daha sonra döndürür sonuçlarını kullanmak için PHP kullanabilirsiniz.

I don't think there is better solution. I need Erlang webserver to run it on web. here is some info PHP+Erlang related

http://yaws.hyber.org/cgi.yaws