Пример #1
0
 private function parseRegistry(Service\Record $record)
 {
     $registry = $this->serviceConfig->getElementsByTagName('registry')->item(0);
     if ($registry !== null) {
         $this->logger->info('Create registry entries');
         $params = $registry->childNodes;
         for ($i = 0; $i < $params->length; $i++) {
             try {
                 $param = $params->item($i);
                 if (!$param instanceof DOMElement) {
                     continue;
                 }
                 if ($param->nodeName == 'param') {
                     $name = $param->getAttribute('name');
                     $value = $param->getAttribute('value');
                     $type = $param->getAttribute('type');
                     $class = $param->getAttribute('class');
                     if (empty($name)) {
                         throw new Exception('Empty param name');
                     }
                     $name = $record->getShortName() . '.' . $name;
                     if (empty($type)) {
                         $type = 'STRING';
                     }
                     if (empty($class)) {
                         $class = null;
                     }
                     $this->sql->insert($this->registry['table.core_registry'], array('name' => $name, 'value' => $value, 'type' => $type, 'class' => $class));
                     $this->logger->info('> Created registry entry "' . $name . '" = "' . $value . '"');
                 } else {
                     if ($param->nodeName == 'table') {
                         $name = $param->getAttribute('name');
                         $value = $param->getAttribute('value');
                         if (empty($name)) {
                             throw new Exception('Empty table name');
                         }
                         $value = empty($value) ? $name : $value;
                         $value = $this->config['amun_table_prefix'] . $value;
                         $name = 'table.' . $name;
                         $this->sql->insert($this->registry['table.core_registry'], array('name' => $name, 'value' => $value, 'type' => 'STRING'));
                         $this->logger->info('> Created registry entry "' . $name . '" = "' . $value . '"');
                     }
                 }
             } catch (\Exception $e) {
                 $this->logger->error($e->getMessage());
             }
         }
         // reload registry
         $this->registry->load();
     }
 }