32
32
33
33
/* Class entry pointers */
34
34
PHPAPI zend_class_entry * pdo_dbh_sqlite_ptr ;
35
+ PHPAPI zend_class_entry * ce_pdo ;
35
36
36
37
/* {{{ pdo_sqlite_functions[] */
37
38
static const zend_function_entry pdo_sqlite_functions [] = {
@@ -82,12 +83,19 @@ PHP_MINIT_FUNCTION(pdo_sqlite)
82
83
REGISTER_PDO_CLASS_CONST_LONG ("SQLITE_ATTR_READONLY_STATEMENT" , (zend_long )PDO_SQLITE_ATTR_READONLY_STATEMENT );
83
84
REGISTER_PDO_CLASS_CONST_LONG ("SQLITE_ATTR_EXTENDED_RESULT_CODES" , (zend_long )PDO_SQLITE_ATTR_EXTENDED_RESULT_CODES );
84
85
86
+ zend_class_entry * pce ;
85
87
zend_class_entry ce_sqlite ;
88
+
89
+ if ((pce = zend_hash_str_find_ptr (CG (class_table ), "pdo" , sizeof ("PDO" ) - 1 )) == NULL ) {
90
+ return SUCCESS ; /* SimpleXML must be initialized before */
91
+ }
92
+
93
+ ce_pdo = pce ;
86
94
INIT_CLASS_ENTRY (ce_sqlite , "PDOSQLite" , pdo_sqlite_functions );
87
95
// The Reflection extension manges to set serialize and unserialize *before* calling
88
96
// zend_register_internal_class(). I couldn't make that work (something to do with
89
97
// pointers/references?) so have had to put them after.
90
- pdo_dbh_sqlite_ptr = zend_register_internal_class (& ce_sqlite , pdo_pdh_ce ); // @TODO Second parameter doesn't resolve
98
+ pdo_dbh_sqlite_ptr = zend_register_internal_class_ex (& ce_sqlite , ce_pdo ); // @TODO Second parameter doesn't resolve
91
99
pdo_dbh_sqlite_ptr -> serialize = zend_class_serialize_deny ;
92
100
pdo_dbh_sqlite_ptr -> unserialize = zend_class_unserialize_deny ;
93
101
zend_declare_property_string (pdo_dbh_sqlite_ptr , "name" , sizeof ("name" )- 1 , "" , ZEND_ACC_PUBLIC );
@@ -113,21 +121,4 @@ PHP_MINFO_FUNCTION(pdo_sqlite)
113
121
php_info_print_table_row (2 , "SQLite Library" , sqlite3_libversion ());
114
122
php_info_print_table_end ();
115
123
}
116
- /* }}} */
117
-
118
- ///* {{{ spl_register_sub_class */
119
- //PHPAPI void spl_register_sub_class(zend_class_entry ** ppce, zend_class_entry * parent_ce, char * class_name, void *obj_ctor, const zend_function_entry * function_list)
120
- //{
121
- // zend_class_entry ce;
122
- //
123
- // INIT_CLASS_ENTRY_EX(ce, class_name, strlen(class_name), function_list);
124
- // *ppce = zend_register_internal_class_ex(&ce, parent_ce);
125
- //
126
- // /* entries changed by initialize */
127
- // if (obj_ctor) {
128
- // (*ppce)->create_object = obj_ctor;
129
- // } else {
130
- // (*ppce)->create_object = parent_ce->create_object;
131
- // }
132
- //}
133
- ///* }}} */
124
+ /* }}} */
0 commit comments