Ici, je vous présente une fonction PHP simple pour charger tous les fichier PHP contenus dans un dossier de vos thème WordPress.
Code de l’autoloader
/** * Use require_once on all PHP files in a path. * No load file "index.php" and files who start with "_" * @param string/array() $path Directory or array of directories to use for load files */ function wprock_autoload( $paths = array() ) { if ( empty( $paths ) ) { return; } if ( is_string( $paths ) ) { $paths = array( $paths ); } foreach ( $paths as $path ) { if ( is_dir( $path ) ) { $files = scandir( $path ); foreach ( $files as $file ) { if ( ( '.php' === substr( $file, -4) ) // End with '.php' && ( '_' !== substr( $file, 0, 1) ) // Don't start with '_' && ( 'index.php' !== $file ) // Is not index.php file ) { require_once( $path . $file ); } } } } }
Initialiser et utiliser l’autoloader
Pour utiliser cet autoloader, il suffit d’appeler la fonction wprock_autoload()
en lui passant en argument le chemin du dossier qui contient les fichiers PHP à charger.
<?php require_once get_template_directory() . '/inc/_autoloader.php'; wprock_autoload( get_stylesheet_directory(). '/inc/' );
Pourquoi ne pas avoir utilisé tout simplement la fonction PHP spl_autoload_register ?
Pourquoi ne pas utiliser l’autoloader de composer ?