Podařilo se mi úspěšně naprogramovat PHPčkovou extension tak, aby se v pořádku zkompilovala (systém GNU/Linux). Bohužel se mi ale nedaří ji naloadovat v samotném PHPčku - hlásí to:
Warning: dl(): Unable to load dynamic library './foo.so' - ./foo.so: undefined symbol: _Z16zif_foo_moduleiP12_zval_structS0_i in /home/user/web/index.php on line 3
Zde je vlastní kód této extension, kromě těla fcí (vlastní fce jsem měl dříve jako samostatné programy - plně funkční):
/* include standard header */
#include "php.h"
#include <sys/socket.h>
#include <sys/un.h>
#include <sys/types.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
using namespace std;
/* declaration of functions to be exported */
ZEND_FUNCTION(foo_module);
/* compiled function list so Zend knows what's in this module */
zend_function_entry foo_functions[] =
{
ZEND_FE(foo_module, NULL)
{NULL, NULL, NULL}
};
/* compiled module information */
zend_module_entry foo_module_entry =
{
STANDARD_MODULE_HEADER,
"Foo extension",
foo_functions,
NULL,
NULL,
NULL,
NULL,
NULL,
"0.0.1",
STANDARD_MODULE_PROPERTIES
};
/* implement standard "stub" routine to introduce ourselves to Zend */
#if COMPILE_DL_FOO_MODULE
ZEND_GET_MODULE(foo)
#endif
/* implement function that is meant to be made available to PHP */
ZEND_FUNCTION(foo_function)
{ ... }
Budu vděčný za každé nakopnutí správným směrem. :-)