PHP: как назвать стандартные библиотечные функции

Я запускаю с PHP для динамических веб-страниц. У меня есть некоторые библиотеки, записанные в ANSI C для получения/установки параметров и другого собственного материала. Интересно, там простое решение для использования обертки в PHP для вызова, это функционирует? Существует ли уже существующий класс/библиотека? Какова была бы лучшая практика, чтобы сделать это самостоятельно? Я не хочу, действительно выполняют вызовы к внешним приложениям и используют stdin/stdout!

Существует ли простой доступный пример? Я не хочу рыть через документацию Зенда на данный момент, мне только нужно чувство для сложности.

8
задан Benjamin 12 January 2014 в 17:48
поделиться

4 ответа

Можете ли вы упаковать ваши библиотеки в DLL? Если да, то вы можете вызывать их через COM api PHP.

PHP COM Docs: http://us3.php.net/manual/en/book.com.php

Пример кода:

<?php  
$com = new COM("DynamicWrapper");
$com->Register("KERNEL32", "Beep", "i=ll", "f=s", "r=l");
$com->Beep(800, 10);

В противном случае вы можете написать расширение, содержащее пользовательскую функцию-обертку (то есть execute_through_wrapper('yourfunc')). Вот документ по написанию php функций на C.

http://php.net/manual/en/internals2.funcs.php

Редактировать:
http://abhinavsingh.com/blog/2008/12/php-extensions-how-and-why/

Вот краткое руководство по написанию расширений на C. Написание функции-обертки не должно быть слишком сложным. Как только вы создали расширение, его можно загрузить динамически через dl() (очень опасно, и обесценивается).

http://us2.php.net/manual/en/function.dl.php

Это единственные варианты в вашем случае. В linux нет эквивалента (.so loader) загрузчика dll (это api вызов, связанный с win32).

7
ответ дан 5 December 2019 в 17:35
поделиться

Вы также можете использовать gearman в качестве посредника.

Gearman предоставляет универсальное приложение фреймворк для передачи работы другим машины или процессы, которые лучше подходит для работы. Это позволяет вам делать работу параллельно, загружать обработка баланса, и позвонить функции между языками. Может быть используется в различных приложениях, с веб-сайтов высокой доступности на транспорт репликации базы данных События. Другими словами, это нервная система, как распределена обработка общается.

2
ответ дан 5 December 2019 в 17:35
поделиться

Что насчет SWIG? http://www.swig.org/

1
ответ дан 5 December 2019 в 17:35
поделиться

На http://pear.php.net/ я нашел расширение под названием «inline_c». К сожалению, я не поддерживается. Но похоже, что это было бы то, что я предпочел бы.

0
ответ дан 5 December 2019 в 17:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: