Exemplo n.º 1
0
 /**
  * プラグインの読み込み
  * @param class $bot Skype_Botクラス
  * @throws Exception ディレクトリのオープンに失敗
  */
 protected function loadPlugin($bot)
 {
     $plugin_path = PLUGIN_DIR;
     if ($handle = opendir($plugin_path)) {
         // プラグインディレクトリの中のファイルを順に読み込み
         while (false !== ($file = readdir($handle))) {
             if (!is_file($plugin_path . $file) or '.php' !== substr($file, -4)) {
                 // 拡張子が.phpのファイルのみを対象とする、それ以外はスキップ
                 continue;
             }
             $basename = basename($file, '.php');
             // プラグインの設定ファイルを読み込み
             $config_value = $this->loadPluginConfig($basename);
             if (isset($config_value['plugin_is_disabled']) and true === $config_value['plugin_is_disabled']) {
                 // 設定で無効されている場合はスキップ
                 if (DEBUG_MODE) {
                     printf("Skip plugin: %s\n", $basename);
                 }
                 continue;
             }
             // プラグインの読み込み
             if (DEBUG_MODE) {
                 printf("Load plugin: %s\n", $basename);
             }
             require_once $plugin_path . $file;
             $bot->loadPlugin($basename, $config_value);
         }
         closedir($handle);
     } else {
         // プラグインディレクトリのオープンに失敗
         throw new Exception('Can not open plugin directory.');
     }
 }