This extension implements a valid PSR-0 class loader for Contao 3.
The implementation is based on the Composer\Autoload\ClassLoader.
This extension is outdated, see the Upgrade information!
Place all files in system/modules/_autoload in your Contao installation.
Usage works similar to the Contao class loader, except that you do not
need to include every class file if you follow PSR-0 standards. Use the
following example to implement the class loader in your config/autoload.php:
<?php
/**
 * Register namespace
 */
NamespaceClassLoader::add('Isotope', 'system/modules/isotope/library');In Contao 4, the only way to install extensions is using Composer. Therefore, you will not need this extension but should use Composer's class loader.
To be compatible with Contao 3 extension repository and Contao 4, you will need to require at least Contao 3.3 and set it up as follow:
- 
Define your namespaces or classes in composer.json.
- 
Remove the dependency for terminal42/contao-namespace-class-loaderfrom yourcomposer.json
- 
Keep the dependency in the old Extension Repository 
- 
Make _autoloadan optional dependency in yourautoload.inilike so:requires[] = "*_autoload"
- 
Only call NamespaceClassLoaderin yourautoload.phpif the class is actually available:if (class_exists('NamespaceClassLoader')) { NamespaceClassLoader::add( ... ); }
If the extension is installed via Composer, the classes will be loaded
by the Composer autoloader. When installed using the old extension
repository, the _autoload extension will be added and the classes
will work like before.
See our commit on how we accomplished this in Isotope eCommerce.