Как я могу использовать код C ++ для взаимодействия с PHP? - PullRequest
18 голосов
/ 01 октября 2009

Я где-то читал, что иногда PHP просто недостаточно быстр, и что скомпилированный код должен иногда "делать тяжелую работу"

Что такое API в C ++ для этого?

Ответы [ 5 ]

35 голосов
/ 01 октября 2009

Вы можете добавить функции / классы в PHP, запрограммированные в C (и вы можете обернуть класс C ++ из C, если я правильно помню из статьи, которую я прочитал некоторое время назад) , что может позволить вам делать что-то быстрее - если хорошо запрограммировано: нет необходимости в интерпретации PHP-кода; только выполнение машинного кода, что обычно намного быстрее.

Для этого вам нужно разработать расширение PHP .

В Интернете не так много доступных ресурсов, но они могут помочь вам начать:

И, в частности, о части C ++, этот тоже может помочь:

Если вы действительно интересуетесь этой темой и готовы потратить на нее немного денег, вы также можете купить книгу Расширение и встраивание PHP ( некоторые страницы доступны в качестве предварительного просмотра в Google Книгах * тоже 1041 *) ; Я пару раз видел, что это была книга для чтения, когда заинтересован в этой теме (На самом деле, я купил ее некоторое время назад, и это интересное чтение)

Кстати, автор этой книги также является автором первых четырех статей, на которые я ссылался; -)

10 голосов
/ 01 октября 2009

Вы можете выполнять скомпилированные приложения без какого-либо API:

$output = exec('/path/to/yourapp');

Помимо этого, вы всегда можете написать расширение PHP. Здесь есть хорошее руководство по этому вопросу: http://devzone.zend.com/article/1021

6 голосов
/ 01 октября 2009

swig, генератор упрощенных оболочек и интерфейсов может помочь вам обернуть (существующий) c ++ в модуль php.

SWIG - это инструмент разработки программного обеспечения, который связывает программы, написанные на C и C ++, с различными языками программирования высокого уровня. SWIG используется с различными типами языков, включая распространенные языки сценариев, такие как Perl, PHP, Python, Tcl и Ruby.
1 голос
/ 01 октября 2009

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

Несколько ссылок, которые могут помочь:

http://www.devarticles.com/c/a/Cplusplus/Developing-Custom-PHP-Extensions-Part-1/ http://devzone.zend.com/article/1021

0 голосов
/ 26 октября 2016

пробовал SWIG ?? кажется хорошим решением вашей проблемы !!

нажмите здесь , чтобы посетить веб-страницу SWIG (хотя документация может быть не очень дружелюбной!)

...