среда, 2 апреля 2014 г.

PHP extension на с++

По умолчанию extension создается для компиляции с-компилятором. Для переключения на с++ есть такой вариант:
1)vim config.m4
2) в блок if test "$PHP_GT_TEST" != "no"; then
  добавить:
  PHP_REQUIRE_CXX()
  PHP_SUBST(GT_TEST_SHARED_LIBADD)
  PHP_ADD_LIBRARY(stdc++, 1, GT_TEST_SHARED_LIBADD)
3) В PHP_NEW_EXTENSION(ext, ext.c, $ext_shared)
поменять ext.c => ext.cc
4) phpize

Создать php extension в unix

Шаги:
1) cd /path_to_php_src/ext
2) ./ext_skel --extname=name
3) cd name
4) vim config.m4, там убрать dnl со строк:
dnl PHP_ARG_ENABLE(gt_test, whether to enable gt_test support,
dnl Make sure that the comment is aligned:
dnl [  --enable-gt_test           Enable gt_test support])
или со строк
dnl PHP_ARG_WITH(gt_test, for gt_test support,
dnl Make sure that the comment is aligned:
dnl [  --with-gt_test             Include gt_test support])
5) phpize
6) ./configure && make && make install