Utiliser un autoloader d'une tierce partie
Attention. Ces exemples sont pour la version 2.x de la librairie Jaxon.
Dans cet exemple l'autoloading est désactivé dans la librairie Jaxon, et un autoloader d'une tierce partie est utilisé pour charger les classes Jaxon.
Les répertoires exportés avec Jaxon sont également enregistrés dans l'autoloader. Celui utilisé ici est Keradus.
Comment ça marche
Désactiver l'autoloading dans la librairie Jaxon, et déclarer les namespaces dans l'autoloader. Exporter les classes dans les namespaces définis ici avec Jaxon.
$jaxon = jaxon();
// Disable autoload
$jaxon->disableAutoload();
// Register the namespaces with a third-party autoloader
$loader = new Keradus\Psr4Autoloader;
$loader->register();
$loader->addNamespace('App', '/jaxon/class/dir/app');
$loader->addNamespace('Ext', '/jaxon/class/dir/ext');
// Add class dirs with namespaces
$jaxon->addClassDir('/jaxon/class/dir/app', 'App');
$jaxon->addClassDir('/jaxon/class/dir/ext', 'Ext');
// Check if there is a request.
if($jaxon->canProcessRequest())
{
// When processing a request, the required class will be autoloaded
$jaxon->processRequest();
}
else
{
// The Jaxon objects are registered only when the page is generated
$jaxon->registerClasses();
}