Вызов кода F # (.Net dll) из php - PullRequest
       5

Вызов кода F # (.Net dll) из php

4 голосов
/ 02 сентября 2010

Мне было интересно, можно ли было вызвать какой-нибудь код F # из php.Кажется, что Фалангер делает свое дело.Кто-нибудь использует это?Для этого решения и других (если они есть?), Какие требования к серверу для запуска кода на сервере?

Спасибо

Ответы [ 3 ]

5 голосов
/ 02 сентября 2010

Phalanger должен иметь возможность вызывать код F # напрямую (как и любой другой скомпилированный код .NET. Код будет таким же, как и при работе со стандартными типами PHP) (хотя Phalanger имеет расширения, которые позволяют вам использовать такие специфические для .NET вещи, как дженерики - что может быть сложно с использованием PHPCOM).

Требования для запуска кода F # с PHP-сайта, скомпилированного с использованием Phalanger, - это просто .NET 2.0+ и IIS (для размещения веб-сайта). Для F # вам нужно будет ссылаться на вашу библиотеку F # и FSharp.Core.dll (который содержит среду выполнения F # и основные типы).

PS: Я был связан с Phalanger в течение некоторого времени, поэтому, если у вас есть вопросы, дайте мне знать - я могу переслать их текущим разработчикам (они также могут оказать некоторую коммерческую поддержку, если вам было интересно).

5 голосов
/ 02 сентября 2010

Да, вы можете, используя PHP COM класс, но он работает только на Windows версии PHP5 + и не требует отдельной установки.Итак, вы делаете так:

<?php
$obj = new COM("myfsharp.dll");

$output=$obj->HelloWorld(); // Call the "HelloWorld()" method from the DLL.
// once we created the COM object this can be used like any other php classes.
echo $output;
?>

и , если вы скептически относитесь к использованию класса PHP COM , тогда прочитайте это из Руководства PHP:

Начиная с PHP 5, это расширение (и эта документация) было переписано с нуля, и большая часть старого запутанного и фальшивого хлама была удалена.Кроме того, мы поддерживаем создание и создание сборок .Net с использованием уровня взаимодействия COM, предоставленного Microsoft.

В этой статье показаны все сделанные изменения.

0 голосов
/ 03 сентября 2010

Phalanger, похоже, становится лучше в том, что он делает, и, поскольку он эффективно делает PHP языком .NET, он является очевидным выбором для взаимодействия с другими языками .NET.Впрочем, я хотел бы представить несколько изменений в вашем PHP-коде.

Если это не сработает для вас, то я согласен с Максом выше.Используйте WebService, если вы работаете на том же сервере, он все равно будет довольно быстрым и имеет преимущество, заключающееся в том, что через Mono и mod_mono его можно развернуть на других серверных платформах, кроме Windows.

...