public function __construct() { $this->parameters = $this->getDefaultParameters(); if ($this->parameters['appDir']) { $this->parameters['wwwDir'] = Utils\FileSystem::normalizePath($this->parameters['appDir'] . '/../www'); $this->parameters['confDir'] = $this->parameters['appDir'] . '/config'; $this->parameters['vendorDir'] = Utils\FileSystem::normalizePath($this->parameters['appDir'] . '/../vendor'); $this->parameters['libsDir'] = $this->parameters['vendorDir']; $this->parameters['filesDir'] = Utils\FileSystem::normalizePath($this->parameters['appDir'] . '/../files'); $this->parameters['logDir'] = Utils\FileSystem::normalizePath($this->parameters['appDir'] . '/../log'); $this->parameters['tempDir'] = Utils\FileSystem::normalizePath($this->parameters['appDir'] . '/../temp'); } }
public function loadConfiguration() { $container = $this->getContainerBuilder(); $config = $this->getConfig(); $useProfiler = isset($config['profiler']) ? $config['profiler'] : $container->parameters['debugMode']; unset($config['profiler']); if (isset($config['flags'])) { $flags = 0; foreach ((array) $config['flags'] as $flag) { $flags |= constant($flag); } $config['flags'] = $flags; } $tableManagerConfig = array_intersect_key($config, array_flip(array('tables', 'requiredTables'))); $connection = $container->addDefinition($this->prefix('connection'))->setClass('DibiConnection', array(array_diff_key($config, $tableManagerConfig))); if ($useProfiler) { $panel = $container->addDefinition($this->prefix('panel'))->setClass('DibiNettePanel')->addSetup('Nette\\Diagnostics\\Debugger::getBar()->addPanel(?)', array('@self'))->addSetup('Nette\\Diagnostics\\Debugger::getBlueScreen()->addPanel(?)', array('DibiNettePanel::renderException')); $connection->addSetup('$service->onEvent[] = ?', array(array($panel, 'logEvent'))); } // TableManager service $tmDef = $container->addDefinition($this->prefix('tableManager'))->setClass('vBuilder\\Database\\TableManager')->addSetup('$service->setScriptDirPath(?)', array(FileSystem::normalizePath($this->getContainerBuilder()->expand('%appDir%/../db')))); // Add all required tables and their definition if (isset($tableManagerConfig['requiredTables'])) { $requiredTables = (array) $tableManagerConfig['requiredTables']; foreach ($requiredTables as $table) { $tableConfig = array('structure' => NULL, 'data' => NULL); // Defined table if (isset($tableManagerConfig['tables'][$table])) { // table_name: { structure: script1.sql, data: script2.sql } if (is_array($tableManagerConfig['tables'][$table])) { $tableConfig = array_intersect_key($tableManagerConfig['tables'][$table], array_flip(array('structure', 'data'))); if (isset($db->config['tables'][$table]['structure'])) { $tableConfig['structure'] = $db->config['tables'][$table]['structure']; } // table_name: script.sql } else { $tableConfig['structure'] = $tableManagerConfig['tables'][$table]; } } // Normalize paths if ($tableConfig['structure']) { $tableConfig['structure'] = FileSystem::normalizePath($tableConfig['structure']); } if ($tableConfig['data']) { $tableConfig['data'] = FileSystem::normalizePath($tableConfig['data']); } $tmDef->addSetup('$service->setTableScripts(?, ?, ?)', array($table, $tableConfig['structure'], $tableConfig['data'])); } } }