-PHP_METHOD(HttpObject, factory)
-{
- zval *ctor_args = NULL;
- zend_class_entry *class_entry = NULL;
- zval *object_ctor;
- zend_fcall_info fci;
- zend_fcall_info_cache fcc;
-
- with_error_handling(EH_THROW, php_http_exception_class_entry) {
- if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "C|a/!", &class_entry, &ctor_args)) {
- object_init_ex(return_value, class_entry);
-
- MAKE_STD_ZVAL(object_ctor);
- array_init(object_ctor);
-
- Z_ADDREF_P(return_value);
- add_next_index_zval(object_ctor, return_value);
- add_next_index_stringl(object_ctor, ZEND_STRL("__construct"), 1);
-
- zend_fcall_info_init(object_ctor, 0, &fci, &fcc, NULL, NULL TSRMLS_CC);
- zend_fcall_info_call(&fci, &fcc, NULL, ctor_args TSRMLS_CC);
-
- zval_ptr_dtor(&object_ctor);
- }
- } end_error_handling();
-}
-