1

アプリケーションにオートローダー機能があります。

 spl_autoload_register(function ($className) {
if (file_exists(ROOT . DS . 'library'  . DS . 'intranet'  . DS  . 'classes' . DS .strtolower($className) . '.php')){
    require_once(ROOT . DS . 'library'  . DS . 'intranet'  . DS  . 'classes' . DS .strtolower($className) . '.php');
    print_r($className." loaded <br/>");
} else if (file_exists(ROOT . DS . 'application' . DS . 'controller' . DS . strtolower($className) . '.php')) {
    require_once(ROOT . DS . 'application' . DS . 'controller' . DS . strtolower($className) . '.php');
} else if (file_exists(ROOT . DS . 'application' . DS . 'model' . DS . strtolower($className) . '.php')) {
    require_once(ROOT . DS . 'application' . DS . 'model' . DS . strtolower($className) . '.php');
} else if (file_exists(ROOT . DS . 'application' . DS . 'view' . DS . strtolower($className) . '.php')) {
    require_once(ROOT . DS . 'application' . DS . 'view' . DS . strtolower($className) . '.php');
} else {
    throw new Exception("Class: $className not autoloaded!");
}
});

私のファイルの 1 つであるセッション マネージャーでは、database というクラスを呼び出します。クラスは以前に呼び出されていないため、databaseその時点で自動ロードする必要があります。

ただし、そうではないようです-そうは言っても、ロードされているクラスのリストを出力しています:

debug loaded 
sessionmanager loaded 
database loaded 
database loaded 

ロードされているように見えますよね?

sessionnmanager クラスで:

Fatal error: Class 'database' not found 

私のオートローダーは問題ないように見えますか?

メソッドのデータベース クラスに print を入れました__construct。確かに、それは呼び出されています。

4

0 に答える 0