Ejemplo n.º 1
0
 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');
     }
 }
Ejemplo n.º 2
0
 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']));
         }
     }
 }