|
|
|
| у меня допустим есть самописная функция, как можно самому сделать так чтоб она являлась расширением для пхп? | |
|
|
|
|
|
|
|
для: localGhost
(21.02.2005 в 06:58)
| | Хреново то, что нельзя просто писать на С++ - все параметры, вызовы функций должны быть объявлены с использованием макросов Zend. Т.е. код должен выглядеть примерно следующим образом
При помощи этого макроса (ZEND_FUNCTION) объявляется функция first_module().
ZEND_FUNCTION(first_module);
Это заполнение списка функций для движка PHP.
zend_function_entry firstmod_functions[] =
{
ZEND_FE(first_module, NULL)
{NULL, NULL, NULL}
};
Это иформация по расширению - она появляется потом в описании выдаваемом функцией phpinfo().
zend_module_entry firstmod_module_entry =
{
STANDARD_MODULE_HEADER,
"First Module",
firstmod_functions,
NULL,
NULL,
NULL,
NULL,
NULL,
NO_VERSION_YET,
STANDARD_MODULE_PROPERTIES
};
Это заглушка - она просто должна быть.
#if COMPILE_DL_FIRST_MODULE
ZEND_GET_MODULE(firstmod)
#endif
Это непосредственно сама функция.
ZEND_FUNCTION(first_module)
{
long parameter;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", ¶meter) == FAILURE) {
return;
}
RETURN_LONG(parameter);
}
|
PS Кстати, интересная картина, на английском существует около 50 книг по тому как писать расширения PHP, на русском ни одной, в Интернете информации тоже нет, всё только за бугром. | |
|
|
|
|
|
|
|
для: cheops
(21.02.2005 в 09:59)
| | а как это все потом в dll файл превратить? что к интерпритатору подключить? у меня пхп 5 установлен | |
|
|
|
|
|
|
|
для: localGhost
(22.02.2005 в 06:07)
| | Сам я расширений не писал и во всех этих макросах не разбирался, вам может помочь ссылка приведённая ниже. Проще всего наверное загрузить исходные коды и посмотреть как сделаны уже существующие расширения и на их основе делать своё, для этого понадобится VC. | |
|
|
|