Создание расширений

itprog

Cruftsman
Создание расширений

Скажите, откуда взять php.h ? И где можно прочитать о разработке модулей для php, кроме zend.com?
Интересует создание модуля на С++ (Builder 6) под windows, для дальнейшего использования на unix системах
 

tony2001

TeaM PHPClub
>И где можно прочитать о разработке модулей для php, кроме zend.com?
кроме http://zend.com/apidoc/ ?
php-src/README.* смотри.
и в Гугле.


>Интересует создание модуля на С++ (Builder 6) под windows, для дальнейшего
>использования на unix системах
если собираешься использовать под Unix, то зачем создавать под виндой?
сборка под виндой: а) нетривиальный процесс, б) кардинально отличается от сборкой под *nix.
не морочь себе голову и делай так, как написано в мануале.
 

itprog

Cruftsman
tony2001, у меня нет возможности создавать все под Unix, точнее есть, но я же не буду на удаленном сервере тестировать все и писать дальше проект, надо так, что бы это все работало под виндой вобщем..
 

tony2001

TeaM PHPClub
тогда берешь мануал, ищешь там главу по сборке на винде, берешь исходники рабочего модуля из CVS и собираешь.
остальное ищешь в гугле.
 

itprog

Cruftsman
Ок, как писать понял, немного вопрос меняется. Как собрать dll библиотеку в C++ Builder 6 (Windows).
 

itprog

Cruftsman
SiMM, так ведь библиотека для PHP предназначается...Что потребуется для сборки?
 

slach

Новичок
itprog
если ты не в курсе как работает компилятор который ты собрался использовать? быть может тебе еще рано браться за написание Extension и подучить диалект и сам C++ ?
 

svetasmirnova

маленький монстрик
Совет больного больному :)
В мануале описано что надо для сборки под Windows в соответствующей главе. Повторять всё надо в точности. Builder 6 - это Borland? Нигде не встречала описания как это делается в Borland, рекомендуется MS Visual C++. Если получится в Borland, опиши :) Ещё можно посмотреть статью Sara Golemon здесь: http://www.devnewz.com/090902b.html
 

su1d

Старожил PHPClubа
itprog
скачай .ZIP с установкой РНР под винду
установи всё как надо, чтобы работало.
для разработки расширений рекомендую поставить РНР как CGI -- тогда не надо рестарить Апача после каждой компиляции.
посмотри, как сделано какое-либо расширение. мне в своё время очень помогло bz2, т.к. оно очень простое.
обрати внимание на файл .dsp в исходниках расширения.
копируешь этот файл к себе (см. ext_skel) и заменяешь вхождения текста: "bz2" => "myext", "BZ2" => "MYEXT"
компилировать лучше всего в MS Visual Studio.
о Ц++ лучше не думать и писать на чистом Ц, иначе будет непросто.
в папку с исходником положишь для линковки php4ts.lib из папки "dev", которую обнаружишь в ЗИПе с РНР.
кажется всё. весь РНР под винду собирать необязательно. достаточно лишь собирать ДЛЛку со своим расширением.
по мере готовности расширения рекомендуется компилировать его на юниксе. будут вылазить небольшие ошибки, которые легко правятся, чтобы получить мультиплатформенное решение.
 

AnToXa

prodigy-одаренный ребенок
> о Ц++ лучше не думать и писать на чистом Ц, иначе будет непросто.

да ладна, чего там.
фигачишь сколько нужно врапперов и всех дел.
ну еще возможно проблемы если надо создавать какие-то объекты на module init, но это решается malloc + placement new. или boost::shared_ptr с custom deleter.

правда могут еще быть проблемы с линковкой, тут надо уже makefile/configure правильно патчить.

сорри за оффтопик, уж очень хотелось :D
 
Сверху