Autoloading Classes in Plugins

In a custom WordPress plugin I have a folder /classes with about 20 classes. Classes sometimes change, come and go. I want all those classes from the folder to be loaded automatically.

No my idea was to load those files by a simple loop require:

foreach (scandir(dirname(__FILE__)."/classes/") as $filename) {
    $path = dirname(__FILE__) . '/' . $filename;
    if (is_file($path)) {
        require $path;
    }
}

However this does not work because there are subclasses loaded before superclasses and I get a fatal error.

PHP usually solves this problem with the spl_autoload_register() function.

However this seems not to work if used in multiple plugins. Has anybody found a good solution to this problem yet?

Topic autoloading php directory plugin-development customization Wordpress

Category Web


Composer Autoloader as suggested in the comments is the best way to do it. Just use composers classmap feature:

"autoload": {
    "classmap": ["classes/"]
}

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.