Как я могу использовать код C++ для взаимодействия с PHP?
Я где-то читал, что иногда PHP просто не достаточно быстр, и что скомпилированный код должен иногда "делать тяжелую работу"
Что такое API в C++, чтобы сделать это?
5 ответов
Вы можете добавить функции / классы в PHP, запрограммированные в C (и вы можете обернуть класс C++ из C, если я правильно помню из статьи, которую я прочитал некоторое время назад), что может позволить вам делать некоторые вещи быстрее - если запрограммировано хорошо: нет необходимости в интерпретации кода PHP; только выполнение машинного кода, что обычно намного быстрее.
Для этого вам нужно будет разработать расширение PHP.
В Интернете не так много доступных ресурсов, но они могут помочь вам начать:
- Написание расширений, часть I: Введение в PHP и Zend
- Написание расширения, часть II: параметры, массивы и ZVAL
- Написание расширения, часть II: параметры, массивы и ZVAL [продолжение]
- Написание расширения Часть III: Ресурсы
И, в частности, о части C++, этот тоже может помочь:
Если вы действительно интересуетесь этой темой и готовы потратить на нее немного денег, вы также можете купить книгу Расширение и встраивание PHP ( некоторые страницы также доступны в качестве предварительного просмотра в Google Книгах); Я пару раз видел, что это была книга для чтения, когда заинтересовался этой темой (На самом деле, я купил ее некоторое время назад, и это интересное чтение)
Кстати, автор этой книги также является автором первых четырех статей, на которые я ссылался;-)
На самом деле вы можете выполнять скомпилированные приложения без какого-либо API:
$output = exec('/path/to/yourapp');
Помимо этого, вы всегда можете написать расширение PHP. Здесь есть хорошее руководство по этому вопросу: http://devzone.zend.com/article/1021
swig, Упрощенный Оболочка и Генератор Интерфейса могут помочь вам обернуть (существующий) C++ в модуль php.
SWIG - это инструмент разработки программного обеспечения, который связывает программы, написанные на C и C++, с различными языками программирования высокого уровня. SWIG используется с различными типами языков, включая распространенные языки сценариев, такие как Perl, PHP, Python, Tcl и Ruby.
Ну, вы не определили, что вы пытаетесь сделать, но если вам нужен интерфейс C++, тогда посмотрите на каталог ext в исходном коде, чтобы понять, как написать расширение PHP, которое вы затем сможете загружать и использовать из своих скриптов PHP.,
Несколько ссылок, которые могут помочь:
http://www.devarticles.com/c/a/Cplusplus/Developing-Custom-PHP-Extensions-Part-1/ http://devzone.zend.com/article/1021
Пробовал SWIG?? кажется хорошим решением вашей проблемы!!
нажмите здесь, чтобы посетить веб-страницу SWIG (документация может быть не очень дружелюбной!)