Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Новый модуль для php
 
 автор: localGhost   (21.02.2005 в 06:58)   письмо автору
 
 

у меня допустим есть самописная функция, как можно самому сделать так чтоб она являлась расширением для пхп?

   
 
 автор: cheops   (21.02.2005 в 09:59)   письмо автору
 
   для: 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", &parameter) == FAILURE) {
        return;
    }
    RETURN_LONG(parameter);
}


PS Кстати, интересная картина, на английском существует около 50 книг по тому как писать расширения PHP, на русском ни одной, в Интернете информации тоже нет, всё только за бугром.

   
 
 автор: localGhost   (22.02.2005 в 06:07)   письмо автору
 
   для: cheops   (21.02.2005 в 09:59)
 

а как это все потом в dll файл превратить? что к интерпритатору подключить? у меня пхп 5 установлен

   
 
 автор: cheops   (22.02.2005 в 09:48)   письмо автору
 
   для: localGhost   (22.02.2005 в 06:07)
 

Сам я расширений не писал и во всех этих макросах не разбирался, вам может помочь ссылка приведённая ниже. Проще всего наверное загрузить исходные коды и посмотреть как сделаны уже существующие расширения и на их основе делать своё, для этого понадобится VC.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования