Пишем расширение для PHP

Для чего может понадобиться написать свое расширение?

  • Существенно повышается скорость исполнения кода
  • Защита существующего кода — код поставляется в виде бинарника
  • Работа с драйверами, «железом на прямую» или использование сторонних dll/so

При разработке данного мануала использовались ресурсы http://www.php-cpp.com и https://habr.com/post/98862/, а так-же ряд других.

  1. Попробуем на Ubuntu php 7.2

Скачиваем и шаблон для разработки расширения на cpp

Получаем:

Не хватает исходных кодов php. Скачиваем, предварительно узнав текущую версию:

Снова пробуем make:

В папке Examples лежит несколько примеров. Попробуем скомпилировать so на основе FunctionReturnValue:

Подключим получившуюся библиотеку в php.ini:

В php.ini добавим строчку:

и выполним тестовый скрипт:

2. Теперь тоже самое на FreeBSD 10.3 и php 5.4

Сначала попробовал скопировать получившийся в Ubuntu so из Ubuntu на FreeBSD и подключить расширением. А вдруг заработает? Не заработало 😉

Тогда делаем всё тоже самое что и в п.1:

Ой:

Установим g++:

Во FreeBSD g++ называется clang++, можно сделать символическую ссылку:

Снова попробовав make, видим те-же ошибки… Ну чтож, сделаем тогда свой Makefile:

Снова пробуем:

Продолжение следует… Буду обновлять FreeBSD до актуальной версии и иставить php 7.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.