2013-09-18 1 views
0

Я пытаюсь создать PHP-расширение/оболочку для библиотеки C. Я внимательно изучил этот учебник Extension Writing Part I и купил книгу «Расширение и внедрение PHP» от того же автора.Создание PHP-расширений в среде MAMP

Я работаю над MAC и устанавливаю MAMP.
Я без проблем загрузил и установил make-3.82, autoconf-2.69, automake-1.9 и libtool-2.4.2. Я создал папку hello в папке Applications/MAMP/bin/php/php5.4.4/lib/php/extensions и создал файлы, перечисленные в учебнике выше, в точности как указано.

Я сделал эти три шага:
$ phpize
$ ./configure --enable-привет
$ делают

Опять нет проблем.

Но при вызове php -r 'echo hello_world();' Я получаю сообщение об ошибке undefined hello_world.

Я знаю, что некоторые из перечисленных выше шагов не являются рекомендуемым способом.
Я в неправильной папке для расширений? Папка расширений не рекомендуется для папки, но я не мог найти папку ext в любом месте.

Выполняют ли текущие версии этих дополнений те же самые, что и старые, или мне нужно вернуться к более ранним версиям?

Есть ли более новый набор инструкций для сборки расширения для PHP, которое любой может порекомендовать?

ответ

1

В дальнейших исследованиях я обнаружил, что моя установка MAMP отсутствует, включает дерево каталогов, которое содержит папку ext, упомянутую во всей текущей документации. Я не знаю, просто ли это обновление или нет, но я собираюсь отказаться от этого и переключиться на среду Linux для разработки.

EDIT: Так что, столкнувшись с той же проблемой в Linux, я обнаружил файл в etc/php5/apache2/conf.d, названный именем существующего расширения с тем же расширением = {extension} .so строка, которая также в php.ini. Когда я дублировал этот файл с моей собственной информацией о расширении, функции начали функционировать. Этот файл не был тем, что я видел, упомянутым в любой из документации, которую я рассмотрел. Я не знаю, есть ли соответствующий файл в среде MAMP, который также вызывает проблемы.