@@ -2730,7 +2730,9 @@ PHP_METHOD(SplFileObject, seek)
27302730/* {{{ PHP_MINIT_FUNCTION(spl_directory) */
27312731PHP_MINIT_FUNCTION (spl_directory )
27322732{
2733- REGISTER_SPL_STD_CLASS_EX (SplFileInfo , spl_filesystem_object_new , class_SplFileInfo_methods );
2733+ spl_ce_SplFileInfo = register_class_SplFileInfo (zend_ce_stringable );
2734+ spl_ce_SplFileInfo -> create_object = spl_filesystem_object_new ;
2735+
27342736 memcpy (& spl_filesystem_object_handlers , & std_object_handlers , sizeof (zend_object_handlers ));
27352737 spl_filesystem_object_handlers .offset = XtOffsetOf (spl_filesystem_object , std );
27362738 spl_filesystem_object_handlers .clone_obj = spl_filesystem_object_clone ;
@@ -2739,16 +2741,14 @@ PHP_MINIT_FUNCTION(spl_directory)
27392741 spl_filesystem_object_handlers .free_obj = spl_filesystem_object_free_storage ;
27402742 spl_ce_SplFileInfo -> serialize = zend_class_serialize_deny ;
27412743 spl_ce_SplFileInfo -> unserialize = zend_class_unserialize_deny ;
2742- REGISTER_SPL_IMPLEMENTS (SplFileInfo , Stringable );
2743-
2744-
2745- REGISTER_SPL_SUB_CLASS_EX (DirectoryIterator , SplFileInfo , spl_filesystem_object_new , class_DirectoryIterator_methods );
2746- zend_class_implements (spl_ce_DirectoryIterator , 1 , zend_ce_iterator );
2747- REGISTER_SPL_IMPLEMENTS (DirectoryIterator , SeekableIterator );
27482744
2745+ spl_ce_DirectoryIterator = register_class_DirectoryIterator (spl_ce_SplFileInfo , spl_ce_SeekableIterator );
2746+ spl_ce_DirectoryIterator -> create_object = spl_filesystem_object_new ;
27492747 spl_ce_DirectoryIterator -> get_iterator = spl_filesystem_dir_get_iterator ;
27502748
2751- REGISTER_SPL_SUB_CLASS_EX (FilesystemIterator , DirectoryIterator , spl_filesystem_object_new , class_FilesystemIterator_methods );
2749+ spl_ce_FilesystemIterator = register_class_FilesystemIterator (spl_ce_DirectoryIterator );
2750+ spl_ce_FilesystemIterator -> create_object = spl_filesystem_object_new ;
2751+ spl_ce_FilesystemIterator -> get_iterator = spl_filesystem_tree_get_iterator ;
27522752
27532753 REGISTER_SPL_CLASS_CONST_LONG (FilesystemIterator , "CURRENT_MODE_MASK" , SPL_FILE_DIR_CURRENT_MODE_MASK );
27542754 REGISTER_SPL_CLASS_CONST_LONG (FilesystemIterator , "CURRENT_AS_PATHNAME" , SPL_FILE_DIR_CURRENT_AS_PATHNAME );
@@ -2763,30 +2763,29 @@ PHP_MINIT_FUNCTION(spl_directory)
27632763 REGISTER_SPL_CLASS_CONST_LONG (FilesystemIterator , "SKIP_DOTS" , SPL_FILE_DIR_SKIPDOTS );
27642764 REGISTER_SPL_CLASS_CONST_LONG (FilesystemIterator , "UNIX_PATHS" , SPL_FILE_DIR_UNIXPATHS );
27652765
2766- spl_ce_FilesystemIterator -> get_iterator = spl_filesystem_tree_get_iterator ;
2767-
2768- REGISTER_SPL_SUB_CLASS_EX (RecursiveDirectoryIterator , FilesystemIterator , spl_filesystem_object_new , class_RecursiveDirectoryIterator_methods );
2769- REGISTER_SPL_IMPLEMENTS (RecursiveDirectoryIterator , RecursiveIterator );
2766+ spl_ce_RecursiveDirectoryIterator = register_class_RecursiveDirectoryIterator (spl_ce_FilesystemIterator , spl_ce_RecursiveIterator );
2767+ spl_ce_RecursiveDirectoryIterator -> create_object = spl_filesystem_object_new ;
27702768
27712769 memcpy (& spl_filesystem_object_check_handlers , & spl_filesystem_object_handlers , sizeof (zend_object_handlers ));
27722770 spl_filesystem_object_check_handlers .clone_obj = NULL ;
27732771 spl_filesystem_object_check_handlers .get_method = spl_filesystem_object_get_method_check ;
27742772
27752773#ifdef HAVE_GLOB
2776- REGISTER_SPL_SUB_CLASS_EX ( GlobIterator , FilesystemIterator , spl_filesystem_object_new_check , class_GlobIterator_methods );
2777- REGISTER_SPL_IMPLEMENTS ( GlobIterator , Countable ) ;
2774+ spl_ce_GlobIterator = register_class_GlobIterator ( spl_ce_FilesystemIterator , zend_ce_countable );
2775+ spl_ce_GlobIterator -> create_object = spl_filesystem_object_new_check ;
27782776#endif
27792777
2780- REGISTER_SPL_SUB_CLASS_EX (SplFileObject , SplFileInfo , spl_filesystem_object_new_check , class_SplFileObject_methods );
2781- REGISTER_SPL_IMPLEMENTS (SplFileObject , RecursiveIterator );
2782- REGISTER_SPL_IMPLEMENTS (SplFileObject , SeekableIterator );
2778+ spl_ce_SplFileObject = register_class_SplFileObject (spl_ce_SplFileInfo , spl_ce_RecursiveIterator , spl_ce_SeekableIterator );
2779+ spl_ce_SplFileObject -> create_object = spl_filesystem_object_new_check ;
27832780
27842781 REGISTER_SPL_CLASS_CONST_LONG (SplFileObject , "DROP_NEW_LINE" , SPL_FILE_OBJECT_DROP_NEW_LINE );
27852782 REGISTER_SPL_CLASS_CONST_LONG (SplFileObject , "READ_AHEAD" , SPL_FILE_OBJECT_READ_AHEAD );
27862783 REGISTER_SPL_CLASS_CONST_LONG (SplFileObject , "SKIP_EMPTY" , SPL_FILE_OBJECT_SKIP_EMPTY );
27872784 REGISTER_SPL_CLASS_CONST_LONG (SplFileObject , "READ_CSV" , SPL_FILE_OBJECT_READ_CSV );
27882785
2789- REGISTER_SPL_SUB_CLASS_EX (SplTempFileObject , SplFileObject , spl_filesystem_object_new_check , class_SplTempFileObject_methods );
2786+ spl_ce_SplTempFileObject = register_class_SplTempFileObject (spl_ce_SplFileObject );
2787+ spl_ce_SplTempFileObject -> create_object = spl_filesystem_object_new_check ;
2788+
27902789 return SUCCESS ;
27912790}
27922791/* }}} */
0 commit comments