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

  • Автор темы Автор темы itprog
  • Дата начала Дата начала

itprog

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

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


>Интересует создание модуля на С++ (Builder 6) под windows, для дальнейшего
>использования на unix системах
если собираешься использовать под Unix, то зачем создавать под виндой?
сборка под виндой: а) нетривиальный процесс, б) кардинально отличается от сборкой под *nix.
не морочь себе голову и делай так, как написано в мануале.
 
tony2001, у меня нет возможности создавать все под Unix, точнее есть, но я же не буду на удаленном сервере тестировать все и писать дальше проект, надо так, что бы это все работало под виндой вобщем..
 
тогда берешь мануал, ищешь там главу по сборке на винде, берешь исходники рабочего модуля из CVS и собираешь.
остальное ищешь в гугле.
 
Ок, как писать понял, немного вопрос меняется. Как собрать dll библиотеку в C++ Builder 6 (Windows).
 
SiMM, так ведь библиотека для PHP предназначается...Что потребуется для сборки?
 
itprog
если ты не в курсе как работает компилятор который ты собрался использовать? быть может тебе еще рано браться за написание Extension и подучить диалект и сам C++ ?
 
Совет больного больному :)
В мануале описано что надо для сборки под Windows в соответствующей главе. Повторять всё надо в точности. Builder 6 - это Borland? Нигде не встречала описания как это делается в Borland, рекомендуется MS Visual C++. Если получится в Borland, опиши :) Ещё можно посмотреть статью Sara Golemon здесь: http://www.devnewz.com/090902b.html
 
itprog
скачай .ZIP с установкой РНР под винду
установи всё как надо, чтобы работало.
для разработки расширений рекомендую поставить РНР как CGI -- тогда не надо рестарить Апача после каждой компиляции.
посмотри, как сделано какое-либо расширение. мне в своё время очень помогло bz2, т.к. оно очень простое.
обрати внимание на файл .dsp в исходниках расширения.
копируешь этот файл к себе (см. ext_skel) и заменяешь вхождения текста: "bz2" => "myext", "BZ2" => "MYEXT"
компилировать лучше всего в MS Visual Studio.
о Ц++ лучше не думать и писать на чистом Ц, иначе будет непросто.
в папку с исходником положишь для линковки php4ts.lib из папки "dev", которую обнаружишь в ЗИПе с РНР.
кажется всё. весь РНР под винду собирать необязательно. достаточно лишь собирать ДЛЛку со своим расширением.
по мере готовности расширения рекомендуется компилировать его на юниксе. будут вылазить небольшие ошибки, которые легко правятся, чтобы получить мультиплатформенное решение.
 
> о Ц++ лучше не думать и писать на чистом Ц, иначе будет непросто.

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

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

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