/** * プラグインの読み込み * @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.'); } }