2016-04-26 11 views
0

Meine spl_autoload_register funktioniert sehr gut, aber ich bekomme in ein Problem, wenn versuchen, PDO o Mysqlispl_autoload_register Problem beim Laden von PDO?

spl_autoload_register(function ($class_name) { 

    require("{$class_name}.php"); 

}); 

diese Warnung zu laden Anfahrt:

Warning: require(aplicacion\dao\mysqli.php): failed to open stream: No such file or directory in 

Wie kann ich es beheben?

+2

Ich glaube, die Lösung vielleicht wie etwas, wenn die Klasse oder die Datei nicht existiert, dann „BREAK“, so etwas wie: Ignoriere diese spl_autoload normalen Laden fortzusetzen. –

+0

Verwenden Sie Namespace? Wenn ja, sollte das PDO in Ihrem Namespace wie "new \ PDO;" aussehen, beachten Sie den umgekehrten Schrägstrich. Oder Sie können 'PDO verwenden;' in die Datei einfügen, die PDO verwendet. – frz3993

Antwort

1

Ihr Autoloader ist der erste, der für eine unbekannte Klasse agiert. Du musst also sicherstellen, dass andere die Möglichkeit haben, hinter ihr zu agieren.

Sie benötigen eine Datei für jede Klasse und Sie stellen keine pdo.php bereit. Das scheitert also.

Versuchen Sie stattdessen:

spl_autoload_register(function ($class_name) { 
    $file = $class_name.'.php'; 
    if (file_exists($file) { 
     require($file); 
    } 
});