Changeset 22808


Ignore:
Timestamp:
2013/05/11 00:07:27 (10 years ago)
Author:
Seasoft
Message:

#2241 (プラグイン機構の自殺を阻止)

  • DB接続できない場合、DB接続エラーで落ちるのは仕方がないかなと思いこの対応。現状把握しているよりも早死する経路があると、この対応は不適切な懸念はある。インスタンスを生成しつつ、関連するDB接続のみ回避できると、ベターなのかも。

#2242 (プラグインが破損している場合に強行突破できる機会を与える)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_13-dev/data/class/helper/SC_Helper_Plugin.php

    r22567 r22808  
    5858            // プラグイン本体ファイル名が取得したプラグインディレクトリ一覧にある事を確認 
    5959            if (array_search($arrPluginData['plugin_code'], $arrPluginDirectory) !== false) { 
     60                $plugin_file_path = PLUGIN_UPLOAD_REALDIR . $arrPluginData['plugin_code'] . '/' . $arrPluginData['class_name'] . '.php'; 
     61                // プラグイン本体ファイルが存在しない場合 
     62                if (!file_exists($plugin_file_path)) { 
     63                    // エラー出力 
     64                    $msg = 'プラグイン本体ファイルが存在しない。当該プラグインを無視して続行する。'; 
     65                    $msg .= 'ファイル=' . var_export($plugin_file_path, true) . '; '; 
     66                    trigger_error($msg, E_USER_WARNING); 
     67                    // 次のプラグインへ続行 
     68                    continue 1; 
     69                } 
    6070                // プラグイン本体ファイルをrequire. 
    61                 require_once PLUGIN_UPLOAD_REALDIR . $arrPluginData['plugin_code'] . '/' . $arrPluginData['class_name'] . '.php'; 
     71                require_once $plugin_file_path; 
    6272 
    6373                // プラグインのインスタンス生成. 
     
    8393    { 
    8494        if (!isset($GLOBALS['_SC_Helper_Plugin_instance'])) { 
    85             // プラグインのローダーがDB接続を必要とするため、 
    86             // SC_Queryインスタンス生成後のみオブジェクトを生成する。 
    87             require_once CLASS_EX_REALDIR . 'SC_Query_Ex.php'; 
    88             if (is_null(SC_Query_Ex::getPoolInstance())) { 
    89                 return false; 
    90             } 
    91  
    9295            $GLOBALS['_SC_Helper_Plugin_instance'] = new SC_Helper_Plugin_Ex(); 
    9396            $GLOBALS['_SC_Helper_Plugin_instance']->load($plugin_activate_flg); 
Note: See TracChangeset for help on using the changeset viewer.