Как разрабатывать расширения C для приложений PHP?

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

Есть ли руководство о том, как сделать что-то подобное?


person Raul Singahn    schedule 04.06.2010    source источник


Ответы (3)


Лучший ресурс, хотя и устаревший в некоторых аспектах (он охватывает PHP только до версии 5.1), — это Расширение и встраивание PHP, Сара Големон. Еще более устаревшей является документация по PHP. С другой стороны, содержимое PHP-вики очень актуально, но также весьма неполно и не очень ориентирован на новичков. См. также эти статьи, часть V Расширенное программирование на PHP Джорджа Шлосснагла, глава 14 Программирование на PHP Расмуса Лердорфа и Кевина Татро и особенно эти слайды.

Наконец, наиболее авторитетным источником, который вы найдете, является исходный код. расширений, связанных с PHP.

person Artefacto    schedule 04.06.2010

Это может быть не ответ, а скорее предложение. Существуют инструменты для компиляции вашего php в исполняемый файл, который вы можете просто использовать в качестве расширения. Это немного унифицирует ваш код и унифицирует ваш проект. Я пробовал что-то подобное некоторое время назад. Скомпилированный php действует так же, как скомпилированный c.

person Babiker    schedule 04.06.2010
comment
Да, вы можете использовать встроенный в PHP SAPI. Расширение и встраивание PHP охватывает это. Но он конкретно говорит, что у него есть веб-приложение, часть которого он хочет оптимизировать, поэтому я думаю, что это не то, что он хочет. - person Artefacto; 04.06.2010
comment
@Артефакт, спасибо. То, что вы прокомментировали, имеет смысл, но я думаю, что скомпилированный php будет намного быстрее, чем его интерпретированная версия. - person Babiker; 04.06.2010

Другим вариантом может быть инструмент командной строки, написанный на C, который вы запускаете из PHP и общаетесь с ним через stdin/stdout. Во многих случаях это намного проще написать и развернуть, но в конечном итоге это зависит от вашего варианта использования.

person Eiko    schedule 04.06.2010
comment
Это также обычно медленнее. - person fmark; 04.06.2010