PHP - пишем свое расширение (extension)
Первые шаги
Под windows расширение php удобнее всего компилировать из под MS Visual Studio. Это вызвано тем, что сам PHP компилируется в этой среде и его заголовки под windows заточены для VS.
1 Сначала необходимо скачать исходники PHP
. У меня раскрылся только файл запакованный bz. tgz почему-то упрямо выдавал ошибку CRC (скорее всего из-за разной реализации распаковщика под windows и linux).2 Далее, проще всего взять проект skeleton из подкаталога ext. Скопировать его в новый каталог (лучше всего рядом в каталоге ext). Переименовать все слова extname и EXTANAME на название своего расширения, в соответствующем регистре.
4 Для компиляции понадобяться файлы библиотек php4ts.lib и php4ts_debug.lib. Первый можно скопировать из любого работающего дистрибутива PHP, а вот второй получиться только при компиляции всего проекта PHP. lib-файлы кладем в каталог проекта или в каталоги Release_TS и Debug_TS соответственно
5 Компилируем проект. В случае удачи подкладываем полученную dll в каталог extensions рабочего дистрибутива PHP. И запускаем из командной строки простой скрипт проверки (с подправленными именами) tests/001.phpt
Пример:
php -q F:/Libraries/PHP/php-4.3.8/ext/skeleton/tests/001.phpt
Он нам покажет загрузилось ли расширение и какие его функции зарегистрированы
5 Одна тонкость способная подпортить много нервов и потратить кучу времени. Имена публичных функций в расширении должны быть написаны в нижнем регистре. Если вы напишете имена с большими буквами все отлично откомпилируется. Скрипт покажет, что в расширении все зарегистрированно. Но при попытке вызова функции будет выдано сообщение об ошибке: вызов необъявленной функции. Поскольку php не разбирает регистр, можно не придать внимания тому факту, что в сообщении об ошибке функция указана в нижнем регистре. В действительности, имена всех функций перед выполнением приводятся к нижнему регистру