Представление является лучшим подходом, но так как hql обычно возвращает Список или Набор..., можно сделать list_1.addAll (list_2). Полностью сосет по сравнению с объединением, но должен работать.
Erlang отлично справляется с вводом-выводом сокетов: может быть, вы могли бы использовать какой-то канал?
Это наверняка будет более прямым, чем через другой уровень веб-сервера.
Используйте функции erlang: open_port и erlang: port_command функции для получения данных в / из Erlang через системный порт.
$ 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
строка (11) "[ 1,2,3,4,5] "
Я не думаю, что есть лучшее решение. Мне нужен веб-сервер Erlang, чтобы запускать его в Интернете. вот некоторая информация, связанная с PHP + Erlang
Я бы запустил веб-сервер, такой как mochiweb , на котором размещен код Erlang. Код PHP будет использовать curl для отправки HTTP-запросов, закодированных в JSON, в mochiweb. Mochiweb имеет кодировщик / декодер JSON, а PHP имеет встроенную поддержку JSON.
Даже если все находится на одном сервере, просто используйте HTTP. Обрабатывает все вещи низкого уровня, и если вам нужно масштабировать, это будет проще, поскольку масштабирование с помощью HTTP - решенная проблема. Mochiweb легкий и обладает высокой производительностью.
Взгляните на erl_call
. http://www.erlang.org/doc/man/erl_call.html
Это программа Unix, которая используется для вызова функции в erlang. Он запустит фиктивный узел erl, выполнит команду (ы) и вернет результат. Вы можете использовать PHP для вызова erl_call, а затем использовать возвращаемые им результаты.