2012-11-12 13 views
12

Hallo Ich versuche, SILEX Mikroframework zusammen mit meiner eigenen Bibliothek voller Klassen zu verwenden, und daher bin ich mit 2 Loadern stecken, die zu einem Fehler führt, dass der Loader Klassen nicht laden kann .. Gibt es a Möglichkeit, diese 2 Lader gleichzeitig zu verwenden, ohne diesen Fehler zu bekommen?mit mehreren Autoloadern PHP

der Lader, die ich Sie unten verwenden finden:

<?php 

/* 
* Loader 
*/ 

function my_autoloader($className) 
{ 
// haal de base dir op. 
    $base = dirname(__FILE__); 


    // het pad ophalen 
    $path = $className; 

    // alle paden samenvoegen tot waar ik zijn moet en de phpfile eraan plakken. 
    $file = $base . "/lib/" . $path . '.php';  

    // als file bestaat haal op anders error 
    if (file_exists($file)) 
    { 
     require $file; 
    } 
    else 
    { 
     error_log('Class "' . $className . '" could not be autoloaded'); 
     throw new Exception('Class "' . $className . '" could not be autoloaded from: ' . $file); 
    } 
} 

spl_autoload_register('my_autoloader'); 

?> 

der Loader, die Anwendungen ist im Lieferantenverzeichnis

(selbst aus dem Rahmen) silex und dies ist, wie mein Dateibaum aussieht :

filetree

Antwort

30

werfen Fehler in Ihren Autoloader-Funktionen nicht. spl_autoload_register ermöglicht es PHP, alle registrierten Autoloader der Reihe nach zu durchlaufen, aber wenn Sie mitten in diesem Prozess einen nicht abgefangenen Fehler werfen, kann er den nächsten Autoloader nicht ausprobieren.

http://php.net/spl_autoload_register

+0

Hey, das hat den Trick gemacht! Danke :) werde deine Antwort so gut wie möglich akzeptieren (4 Minuten das ist) – Reshad