@@ -52,17 +52,13 @@ extern ps_module ps_mod_redis;
5252extern ps_module ps_mod_redis_cluster ;
5353#endif
5454
55- extern zend_class_entry * redis_array_ce ;
56- extern zend_class_entry * redis_cluster_ce ;
57- extern zend_class_entry * redis_cluster_exception_ce ;
58- extern zend_class_entry * redis_sentinel_ce ;
59-
6055zend_class_entry * redis_ce ;
6156zend_class_entry * redis_exception_ce ;
6257
6358#if PHP_VERSION_ID < 80000
6459#include "redis_legacy_arginfo.h"
6560#else
61+ #include "zend_attributes.h"
6662#include "redis_arginfo.h"
6763#endif
6864
@@ -440,14 +436,6 @@ static PHP_GINIT_FUNCTION(redis)
440436PHP_MINIT_FUNCTION (redis )
441437{
442438 struct timeval tv ;
443-
444- zend_class_entry redis_class_entry ;
445- zend_class_entry redis_array_class_entry ;
446- zend_class_entry redis_cluster_class_entry ;
447- zend_class_entry redis_sentinel_class_entry ;
448- zend_class_entry redis_exception_class_entry ;
449- zend_class_entry redis_cluster_exception_class_entry ;
450-
451439 zend_class_entry * exception_ce = NULL ;
452440
453441 /* Seed random generator (for RedisCluster failover) */
@@ -457,24 +445,17 @@ PHP_MINIT_FUNCTION(redis)
457445 REGISTER_INI_ENTRIES ();
458446
459447 /* Redis class */
460- INIT_CLASS_ENTRY (redis_class_entry , "Redis" , redis_get_methods ());
461- redis_ce = zend_register_internal_class (& redis_class_entry );
448+ redis_ce = register_class_Redis ();
462449 redis_ce -> create_object = create_redis_object ;
463450
464451 /* RedisArray class */
465- INIT_CLASS_ENTRY (redis_array_class_entry , "RedisArray" , redis_array_get_methods ());
466- redis_array_ce = zend_register_internal_class (& redis_array_class_entry );
467- redis_array_ce -> create_object = create_redis_array_object ;
452+ ZEND_MINIT (redis_array )(INIT_FUNC_ARGS_PASSTHRU );
468453
469454 /* RedisCluster class */
470- INIT_CLASS_ENTRY (redis_cluster_class_entry , "RedisCluster" , redis_cluster_get_methods ());
471- redis_cluster_ce = zend_register_internal_class (& redis_cluster_class_entry );
472- redis_cluster_ce -> create_object = create_cluster_context ;
455+ ZEND_MINIT (redis_cluster )(INIT_FUNC_ARGS_PASSTHRU );
473456
474457 /* RedisSentinel class */
475- INIT_CLASS_ENTRY (redis_sentinel_class_entry , "RedisSentinel" , redis_sentinel_get_methods ());
476- redis_sentinel_ce = zend_register_internal_class (& redis_sentinel_class_entry );
477- redis_sentinel_ce -> create_object = create_sentinel_object ;
458+ ZEND_MINIT (redis_sentinel )(INIT_FUNC_ARGS_PASSTHRU );
478459
479460 /* Register our cluster cache list item */
480461 le_cluster_slot_cache = zend_register_list_destructors_ex (NULL , cluster_cache_dtor ,
@@ -488,16 +469,7 @@ PHP_MINIT_FUNCTION(redis)
488469 }
489470
490471 /* RedisException class */
491- INIT_CLASS_ENTRY (redis_exception_class_entry , "RedisException" , NULL );
492- redis_exception_ce = zend_register_internal_class_ex (
493- & redis_exception_class_entry ,
494- exception_ce );
495-
496- /* RedisClusterException class */
497- INIT_CLASS_ENTRY (redis_cluster_exception_class_entry ,
498- "RedisClusterException" , NULL );
499- redis_cluster_exception_ce = zend_register_internal_class_ex (
500- & redis_cluster_exception_class_entry , exception_ce );
472+ redis_exception_ce = register_class_RedisException (exception_ce );
501473
502474 /* Add shared class constants to Redis and RedisCluster objects */
503475 add_class_constants (redis_ce , 0 );
0 commit comments