私は基本的にCPPで非常に単純なクラスをラップするphp5.4用の拡張を作成しようとしています。PHP 5.4用のC++拡張を書くと、サンプルコードは廃止されました
これは教育目的のためのものです。私はphp5.4でそれを行うための方法を見つける
はPHP5.3
私はそれを行う方法についてのドキュメントを見つけるんから変更されましたか?コードサンプル、CPPクラスをラップしてphp5.4で動作する他の拡張モジュール
たとえば、以前は何をしていたのですか? 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;
}
から取られたライン zend_hash_copy(obj->std.properties, &type->default_properties, (copy_ctor_func_t)zval_add_ref, (void *)&tmp, sizeof(zval *));
は、構造インスタンスtype
として失敗します(それが定義だ忘れては)もはやメンバーdefault_properties
おそらくあなたの最高のリソースはPHP5.4のソースコード –
@マークベイカーある特定がある場合、私は、CPPに素晴らしいではありませんよ既にそれをしている拡張機能は大きな助けになるでしょう。それ以外の場合は、うん、まあまあ何を提案する –
http://php.net/manual/en/internals2.structure.php? –