Как PHP может общаться с процессом C #, работающим на моно? - PullRequest
5 голосов
/ 22 июля 2009

Я кодирую веб-приложение на PHP, и оно содержит некоторые части, требующие высокой производительности, которые я хотел бы переписать на скомпилированном языке. Я знаю, что, возможно, я мог бы сделать это проще, просто написав расширение C ++ для PHP, но я слишком избалован управляемыми языками, такими как C #, поэтому я бы хотел избежать C ++, если это возможно.

Если бы я хотел, чтобы PHP-скрипт выполнял функцию внутри запущенного процесса C # (on mono), как я мог это сделать? Мое первое предположение - заставить PHP открыть сокет для процесса C #, выполнить работу и закрыть сокет, но я думаю, что это добавит ненужные накладные расходы.

Являются ли именованные каналы чем-то, что может решить эту проблему? Если да, работают ли они на Windows (на моей машине для разработки) и как их использовать из C #?

Если нет, какие еще варианты у меня есть?

Ответы [ 3 ]

9 голосов
/ 22 июля 2009
1 голос
/ 22 июля 2009

Другой вариант - написать модуль PHP, который встраивает среду исполнения Mono в ваше приложение.

Вот документация по внедрению среды выполнения Mono в ваше приложение, в данном случае это будет PHP:

http://mono -project.com / Embedding_Mono

0 голосов
/ 22 июля 2009

Существовало расширение PECL для моно , но оно больше не поддерживается (последняя версия была в 2003 году); так что это, вероятно, плохая идея в долгосрочной перспективе ...

Что-то более новое, ища документацию php, если вы хотите работать с .NET, вас могут заинтересовать COM и .Net (Windows) ; но это, вероятно, не будет хорошо для вас, так как вы указываете «моно», что, вероятно, означает «не-Windows» платформа: - (

Каждый раз, когда я слышал о расширении PHP скомпилированным языком, он использовал C (а иногда и C ++); Я никогда не использовал C # /. NET / mono для этого ...

... Таким образом, вы можете не найти то, что ищете: - (

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

(хотя компиляция PHP в .NET кажется возможной - но это как полная противоположность того, что вы спрашиваете ^^)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...