0

ライブ サーバーでスクリプトを実行しようとしていますが、ステージング中です。

ローカルではすべて問題ありません (OS X)、リモートでは CentOS/Nginx、致命的な問題が発生しています.スクリプトは、カスタム データベース クラスが見つからないと言っています。

を使用してロードされたものを見るとget_declared_classes()、それを呼び出すスクリプト/クラスの前にロードされているカスタム データベース クラスを確実に確認できます。

オートローダーを介してロードされています:

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');
} 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!");
}
});

例外はスローされていません。

Array ( [128] => Router 
        [129] => debug 
        [130] => database 
        [131] => SessionManager 
        [132] => security 
) 

Fatal error: Class 'database' not found in 
/home/nginx/domains/ckrisc/public/library/intranet/classes/sessionmanager.php 
on line 76

ブートストラップとファイル インクルードは次のとおりです。

require_once (ROOT . DS . 'config'  . DS . 'config.php'                         );
require_once (ROOT . DS . 'config'  . DS . 'directories.config.php'             );
require_once (library . DS . 'setup.php'        );
require_once (library . DS . 'Autoloader.php'   );
require_once (library . DS . 'Router.php'       );
require_once (library . DS . 'init.php'         );

この場合、クラスdatabaseは で呼び出される sessionmanager から呼び出され init.phpます。

スクリプトはここで失敗しています:

$sessionId = database::getInstance()->real_escape_string($sessionId);

ここで何が欠けているかについてのアイデアはありますか?

4

2 に答える 2

0

APC 3.1.13 がいくつかの問題を引き起こしていることが判明

于 2012-11-23T16:13:28.337 に答える
0

オートロード関数が宣言される前にクラスを呼び出している可能性があります。

于 2012-11-18T18:38:30.080 に答える