Пример #1
0
 /**
  * 
  * @param type $moduleName
  * @param type $moduleListenersPath
  */
 private static function attachModuleEventListeners($moduleSource, $moduleTarget, $moduleListenersPath)
 {
     $emitter = Di::getDefault()->get('events');
     $myListeners = File::getFiles($moduleListenersPath, 'php');
     foreach ($myListeners as $myListener) {
         $listener = basename($myListener, '.php');
         $eventName = CamelCaseTransformation::camelCaseToCustom($moduleTarget, '-') . '.' . CamelCaseTransformation::camelCaseToCustom($listener, '.');
         $emitter->on(strtolower($eventName), function ($params) use($listener, $moduleSource, $moduleTarget) {
             call_user_func(array($moduleSource . "\\Listeners\\" . $moduleTarget . "\\" . $listener, "execute"), $params);
         });
     }
 }
Пример #2
0
 /**
  * 
  * @param string $module
  * @return array
  */
 private function getModulesTablesFiles($module = 'centreon')
 {
     // Get Mandatory tables files
     $fileList = File::getFiles($this->appPath . '/install/db/' . $this->dbName, 'xml');
     // Get Modules tables files
     $moduleList = Informations::getModuleList(false);
     foreach ($moduleList as $module) {
         $expModuleName = array_map(function ($n) {
             return ucfirst($n);
         }, explode('-', $module));
         $moduleFileSystemName = implode("", $expModuleName) . 'Module';
         $fileList = array_merge($fileList, File::getFiles($this->appPath . '/modules/' . $moduleFileSystemName . '/install/db/' . $this->dbName, 'xml'));
     }
     return $fileList;
 }
Пример #3
0
 /**
  * 
  * @param string $dirname
  * @param string $targetDbName
  */
 public static function loadDefaultDatas($dirname, $targetDbName = 'centreon')
 {
     $dirname = rtrim($dirname, '/');
     $orderFile = $dirname . '/' . $targetDbName . '.json';
     $db = self::getDbConnector($targetDbName);
     $db->beginTransaction();
     if (file_exists($orderFile)) {
         $insertionOrder = json_decode(file_get_contents($orderFile), true);
         foreach ($insertionOrder as $fileBaseName) {
             $datasFile = $dirname . '/' . $targetDbName . '/' . $fileBaseName . '.json';
             self::insertDatas($datasFile, $targetDbName);
         }
     } else {
         $datasFiles = File::getFiles($dirname, 'json');
         foreach ($datasFiles as $datasFile) {
             self::insertDatas($datasFile, $targetDbName);
         }
     }
     $db->commit();
 }