Próbuję napisać rozszerzenie dla php5.4, które zasadniczo owija bardzo prostą klasę w CPP.Pisząc rozszerzenie C++ dla PHP 5.4, przykładowy kod jest przestarzały
To jest w celach edukacyjnych.
znajdę sposób to zrobić w php5.4 zmieniła od php5.3
Gdzie mogę znaleźć dokumentację na temat jak to zrobić? Lub jeszcze lepiej, przykład kodu, każde inne rozszerzenie, które owija klasy CPP i działa w php5.4
Na przykład, co kiedyś działało i już nie jest. Zrobione z http://devzone.zend.com/1435/wrapping-c-classes-in-a-php-extension/
zend_object_value car_create_handler(zend_class_entry *type TSRMLS_DC)
{
zval *tmp;
zend_object_value retval;
car_object *obj = (car_object *)emalloc(sizeof(car_object));
memset(obj, 0, sizeof(car_object));
obj->std.ce = type;
ALLOC_HASHTABLE(obj->std.properties);
zend_hash_init(obj->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
zend_hash_copy(obj->std.properties, &type->default_properties,
(copy_ctor_func_t)zval_add_ref, (void *)&tmp, sizeof(zval *));
retval.handle = zend_objects_store_put(obj, NULL,
car_free_storage, NULL TSRMLS_CC);
retval.handlers = &car_object_handlers;
return retval;
}
Linia zend_hash_copy(obj->std.properties, &type->default_properties, (copy_ctor_func_t)zval_add_ref, (void *)&tmp, sizeof(zval *));
zawiedzie jako przykład struktury type
(zapomniałem to definicja) nie ma już członkiem default_properties
Prawdopodobnie najlepszym źródłem jest kod źródłowy PHP5.4 –
@Mark Baker Nie jestem świetny w KPP, jeśli istnieje szczególne rozszerzenie, które już to robi, byłoby wielką pomocą. W przeciwnym razie, tak, zrób dokładnie to, co sugerujesz –
http://php.net/manual/en/internals2.structure.php? –