loadConfiguration() 공개 메소드

Processes configuration data. Intended to be overridden by descendant.
public loadConfiguration ( ) : void
리턴 void
예제 #1
0
 public function loadConfiguration()
 {
     parent::loadConfiguration();
     $this->config = $this->getConfig($this->defaults);
     $builder = $this->getContainerBuilder();
     $builder->addDefinition($this->prefix('filter'))->setClass(Filter::class)->setArguments([$this->config['directory'], $this->config['parameter']]);
 }
예제 #2
0
 public function loadConfiguration()
 {
     parent::loadConfiguration();
     $builder = $this->getContainerBuilder();
     $cacheDir = $builder->parameters[self::CACHE_DIR];
     $imagesDir = $builder->parameters[self::IMAGES_DIR];
     $servicesCacheDir = $cacheDir . "services";
     $moduleCacheDir = $servicesCacheDir . "/" . $this->getModuleName();
     if (!file_exists($servicesCacheDir)) {
         try {
             FileSystem::createDir($servicesCacheDir);
         } catch (Nette\IOException $ex) {
             throw new Exceptions\InsufficientPermissionException("Permission denied while creating {$servicesCacheDir} directory");
         }
     }
     if (!file_exists($moduleCacheDir)) {
         try {
             FileSystem::createDir($moduleCacheDir);
         } catch (Nette\IOException $ex) {
             throw new Exceptions\InsufficientPermissionException("Permission denied while creating {$moduleCacheDir} directory");
         }
     }
     if (!file_exists($imagesDir)) {
         try {
             FileSystem::createDir($imagesDir);
         } catch (Nette\IOException $ex) {
             throw new Exceptions\InsufficientPermissionException("Permission denied while creating {$imagesDir} directory");
         }
     }
 }
예제 #3
0
 public function loadConfiguration()
 {
     parent::loadConfiguration();
     $this->validateConfig($this->defaults);
     $builder = $this->getContainerBuilder();
     $builder->addDefinition($this->prefix('control'))->setImplement(Control\Factory::class)->setArguments([$this->config['templates']]);
 }
예제 #4
0
 public function loadConfiguration()
 {
     parent::loadConfiguration();
     $builder = $this->getContainerBuilder();
     $config = $this->createConfig();
     foreach ($this->classesDefinition as $k => $v) {
         list($firstKey) = explode('.', $k);
         if (!isset($config[$firstKey]) || !isset($config[$firstKey]['enable']) || $config[$firstKey]['enable']) {
             $classes[$k] = $builder->addDefinition($this->prefix($k))->setClass($v);
         }
     }
     /** @var Nette\DI\ServiceDefinition[] $factories */
     $factories = [];
     foreach ($this->factoriesDefinition as $k => $v) {
         $factories[$k] = $builder->addDefinition($this->prefix($k))->setImplement($v);
     }
     $factories['components.listingFactory']->setArguments(['templateFile' => $config['components']['listing']['template'], 'filterFactory' => $this->prefix('@components.filterFactory')]);
     if (class_exists('\\Symfony\\Component\\Console\\Command\\Command')) {
         $command = ["cli.install" => "Install"];
         if ($config['labels']['enable']) {
             $command["cli.labels"] = "Labels";
         }
         foreach ($command as $k => $v) {
             $builder->addDefinition($this->prefix($k))->setClass('Trejjam\\Utils\\Cli\\' . $v)->addTag("kdyby.console.command");
         }
     }
 }
예제 #5
0
파일: Extension.php 프로젝트: ytnuk/page
 public function loadConfiguration()
 {
     parent::loadConfiguration();
     $builder = $this->getContainerBuilder();
     $builder->addDefinition($this->prefix('control'))->setImplement(Control\Factory::class);
     $builder->addDefinition($this->prefix('form.control'))->setImplement(Form\Control\Factory::class);
 }
 public function loadConfiguration()
 {
     parent::loadConfiguration();
     $config = $this->getConfig($this->defaults);
     $builder = $this->getContainerBuilder();
     $definition = $builder->addDefinition($this->prefix('sessionHandler'))->setClass('Pematon\\Session\\MysqlSessionHandler')->addSetup('setTableName', [$config['tableName']]);
     $builder->getDefinition('session')->addSetup('setHandler', array($definition));
 }
예제 #7
0
 public function loadConfiguration()
 {
     parent::loadConfiguration();
     $builder = $this->getContainerBuilder();
     $config = $this->getConfig(self::$DEFAULTS);
     $accounts = $this->loadAccounts($config['account']);
     $builder->addDefinition($this->prefix('chain'))->setClass(\Brosland\Chain\Chain::class)->addSetup('injectServiceLocator')->addSetup('injectServiceMap', [$accounts]);
 }
예제 #8
0
 public function loadConfiguration()
 {
     parent::loadConfiguration();
     $builder = $this->getContainerBuilder();
     $config = $this->getConfig(self::$DEFAULTS);
     $baseUrl = $config['host'] . ':' . $config['port'];
     $wallets = $this->loadWallets($config['wallet'], $baseUrl);
     $builder->addDefinition($this->prefix('blockchain'))->setClass(\Brosland\Blockchain\Blockchain::class)->setArguments([$baseUrl])->addSetup('injectServiceLocator')->addSetup('injectServiceMap', [$wallets]);
 }
예제 #9
0
 public function loadConfiguration()
 {
     parent::loadConfiguration();
     $config = $this->getConfig($this->defaults);
     $builder = $this->getContainerBuilder();
     $builder->addDefinition($this->prefix('Panel'))->setClass('Yadup\\Panel', array($config))->addSetup('Tracy\\Debugger::getBar()->addPanel(?)', array('@self'))->addTag("run");
     $builder->addDefinition($this->prefix("UpdatorService"))->setClass("Yadup\\UpdatorService", array($config["sqlDir"], $config["sqlExt"], $config["dbUpdateTable"], $config["definerUser"], $config["definerHost"], $config["dbConnection"], $config["dbConnection"] . ".structure"));
     $builder->addDefinition($this->prefix("UpdatorRenderService"))->setClass("Yadup\\UpdatorRenderService", array($config["sqlDir"], $config["sqlExt"], $config["dbUpdateTable"], $config["dbConnection"], $config["dbConnection"] . ".structure"));
 }
예제 #10
0
 public function loadConfiguration()
 {
     parent::loadConfiguration();
     $builder = $this->getContainerBuilder();
     $config = $this->getConfig($this->defaults);
     $accounts = $this->loadAccounts($config['account'], $config['curl']);
     $wallets = $this->loadWallets($config['wallet']);
     $builder->addDefinition($this->prefix('blocktrail'))->setClass(Blocktrail::class)->addSetup('setServiceLocator')->addSetup('setAccountsServiceMap', [$accounts])->addSetup('setWalletsServiceMap', [$wallets])->addSetup('setWebhooksMap', [$config['webhook']]);
 }
예제 #11
0
 public function loadConfiguration()
 {
     parent::loadConfiguration();
     $builder = $this->getContainerBuilder();
     $config = $this->createConfig();
     $tracyLogger = $builder->getDefinition('tracy.logger');
     $tracyLogger->setFactory('Trejjam\\Utils\\Debugger\\Debugger::getLogger')->addSetup('setEmailClass', ['@Nette\\Mail\\IMailer'])->addSetup('setEmailSnooze', [$config['snoze']])->addSetup('setHost', [$config['host']])->addSetup('setPath', [$config['path']]);
     $tracyLogger = $builder->getDefinition('tracy.blueScreen');
     $tracyLogger->setFactory('Trejjam\\Utils\\Debugger\\Debugger::getBlueScreen')->addSetup('setSslAuthorizedDn', [$config['sslAuthorizedDn'], $config['logIgnoreEmail']])->addSetup('setSiteMode', [$config['siteMode']]);
 }
예제 #12
0
 public function loadConfiguration()
 {
     parent::loadConfiguration();
     $config = $this->getContainerBuilder()->expand($this->validateConfig($this->defaults, $this->getConfig()));
     $builder = $this->getContainerBuilder();
     if (!$config['accessToken']) {
         throw new \Exception('Access token for Rollback must be set.');
     }
     $builder->addDefinition($this->prefix('rollbar'))->setClass('WebChemistry\\RollBar\\RollBar', [$config['accessToken'], $config['logging'], $config['enable'], $config['config']]);
 }
예제 #13
0
 public function loadConfiguration()
 {
     parent::loadConfiguration();
     $config = $this->getConfig(self::$DEFAULTS);
     $builder = $this->getContainerBuilder();
     $builder->addDefinition($this->prefix('router'))->setFactory(\Brosland\RouterFactory::class . '::createRouter')->setAutowired(FALSE);
     $builder->addDefinition($this->prefix('authorizator'))->setClass(\Brosland\Authorizator::class)->addSetup('addPrivilegeDefinitions', array($config['security']['privileges']))->addSetup('addRoleDefinitions', array($config['security']['roles']));
     $builder->addDefinition($this->prefix('preferences'))->setClass(\Brosland\Preferences::class);
     $builder->addDefinition($this->prefix('pageConfig'))->setClass(PageConfiguration::class)->setArguments(array($config['page']));
 }
 public function loadConfiguration()
 {
     parent::loadConfiguration();
     $containerBuilder = $this->getContainerBuilder();
     $containerBuilder->addDefinition($this->prefix('serverInfoFactory'))->setClass('JR\\SystemInfo\\ServerInfoFactory');
     $containerBuilder->addDefinition($this->prefix('phpInfoFactory'))->setClass('JR\\SystemInfo\\PhpInfoFactory');
     $containerBuilder->addDefinition($this->prefix('serverInfo'))->setFactory('@' . $this->prefix('serverInfoFactory') . '::createServerInfo');
     $containerBuilder->addDefinition($this->prefix('hostInfo'))->setClass('JR\\SystemInfo\\HostInfo');
     $containerBuilder->addDefinition($this->prefix('phpInfo'))->setFactory('@' . $this->prefix('phpInfoFactory') . '::createPhpInfo');
     $containerBuilder->addDefinition($this->prefix('systemInfo'))->setClass('JR\\SystemInfo\\SystemInfo');
 }
예제 #15
0
 public function loadConfiguration()
 {
     parent::loadConfiguration();
     $builder = $this->getContainerBuilder();
     $config = $this->getConfig(self::$defaults);
     $builder->addDefinition($this->prefix('requestFactory'))->setClass(RequestFactory::class)->addSetup('setMethodOverride', [$config['methodOverride']]);
     $builder->getDefinition('httpRequest')->setFactory($this->prefix('@requestFactory') . '::createHttpRequest');
     $inputFactory = $builder->addDefinition($this->prefix('inputFactory'))->setClass(InputFactory::class)->addSetup('addParser', ['application/json', new JsonParser()]);
     foreach ($config['inputParsers'] as $contentType => $service) {
         $inputFactory->addSetup('addParser', [$contentType, $service]);
     }
 }
예제 #16
0
 public function loadConfiguration()
 {
     parent::loadConfiguration();
     $builder = $this->getContainerBuilder();
     $config = $this->getConfig($this->defaults);
     if (class_exists('\\Symfony\\Component\\Console\\Command\\Command')) {
         $command = ['cliExport' => 'Cli\\Export'];
         foreach ($command as $k => $v) {
             $builder->addDefinition($this->prefix($k))->setClass('Trejjam\\Export\\' . $v, [$config])->addTag('kdyby.console.command');
         }
     }
 }
예제 #17
0
파일: Extension.php 프로젝트: ytnuk/form
 public function loadConfiguration()
 {
     parent::loadConfiguration();
     $this->validateConfig($this->defaults);
     $providers = $this->compiler->getExtensions(Provider::class);
     array_walk($providers, function (Provider $provider) {
         $this->config = $this->validateConfig($this->config, $provider->getFormResources());
     });
     $builder = $this->getContainerBuilder();
     $renderer = $builder->addDefinition($this->prefix('renderer'))->setClass($this->config['renderer']['class']);
     if (is_a($this->config['renderer'], Nette\Forms\Rendering\DefaultFormRenderer::class, TRUE)) {
         $renderer->addSetup('$service->wrappers = array_merge_recursive($service->wrappers, ?)', [$this->config['renderer']['wrappers']]);
     }
 }
예제 #18
0
 public function loadConfiguration()
 {
     parent::loadConfiguration();
     $config = $this->validateConfig($this->defaults);
     $containerBuilder = $this->getContainerBuilder();
     Validators::assert($config, 'array');
     Validators::assertField($config, 'themesDir', 'string');
     $themesDir = $this->validateDirectory($config['themesDir']);
     Validators::assertField($config, 'currentTheme', 'string');
     $currentTheme = $config['currentTheme'];
     Validators::assertField($config, 'fallbackTheme', 'string');
     $fallbackTheme = $config['fallbackTheme'];
     $containerBuilder->addDefinition($this->prefix('themeManager'))->setClass('JR\\Themed\\ThemeManager\\RuntimeThemeManager', [$themesDir, $currentTheme, $fallbackTheme]);
     $containerBuilder->addDefinition($this->prefix('templateFileFormatter'))->setClass('JR\\Themed\\TemplateFileFormatter\\ThemeManagerAwareTemplateFileFormatter');
 }
 public function loadConfiguration()
 {
     parent::loadConfiguration();
     $config = $this->validateConfig($this->defaults);
     $containerBuilder = $this->getContainerBuilder();
     Validators::assertField($config, 'containerControls', 'array');
     $autowired = count($config['containerControls']) === 1;
     foreach ($config['containerControls'] as $key => $containerControlOptions) {
         if (is_string($containerControlOptions)) {
             $containerControlOptions = ['name' => $containerControlOptions];
         } else {
             $containerControlOptions['name'] = $key;
         }
         $containerControlOptions = ConfigHelpers::merge($containerControlOptions, $this->containerControlDefaults);
         Validators::assertField($containerControlOptions, 'name', 'string');
         Validators::assertField($containerControlOptions, 'implement', 'string');
         $containerBuilder->addDefinition($this->prefix($containerControlOptions['name'] . 'ContainerControlFactory'))->setImplement($containerControlOptions['implement'])->setAutowired($autowired);
     }
 }
예제 #20
0
 public function loadConfiguration()
 {
     parent::loadConfiguration();
     $builder = $this->getContainerBuilder();
     $config = $this->getConfig($this->defaults);
     Nette\Utils\Validators::assert($config, 'array');
     $contentsArguments = [$config['configurationDirectory'], $config['logDirectory']];
     if (!is_null($config['logDirectory'])) {
         $contentsArguments[2] = '@tracy.logger';
     }
     $builder->addDefinition($this->prefix('contents'))->setClass('Trejjam\\Contents\\Contents')->setArguments($contentsArguments);
     foreach ($config['subTypes'] as $subTypeName => $subType) {
         $def = $builder->addDefinition($this->prefix('contents.' . md5(Nette\Utils\Json::encode($subType))));
         $def->addSetup('setName', [$subTypeName]);
         $def->setFactory(Nette\DI\Compiler::filterArguments([is_string($subType) ? new Nette\DI\Statement($subType) : $subType])[0]);
         $def->setAutowired(FALSE);
         $def->setInject(FALSE);
         $def->addTag(self::TAG_CONTENTS_SUBTYPES);
     }
 }
예제 #21
0
 public function loadConfiguration()
 {
     parent::loadConfiguration();
     $builder = $this->getContainerBuilder();
     $config = $this->getConfig($this->defaults);
     $config['rabbitmq']["appDir"] = $builder->parameters["appDir"];
     $emails = $builder->addDefinition($this->prefix('emails'))->setClass('Trejjam\\Emailing\\Emails')->addSetup('setConfig', ['config' => $config['tables']]);
     $groups = $builder->addDefinition($this->prefix('groups'))->setClass('Trejjam\\Emailing\\Groups')->addSetup('setConfig', ['config' => $config['tables']]);
     $senders = $builder->addDefinition($this->prefix('senders'))->setClass('Trejjam\\Emailing\\Senders')->addSetup('setConfig', ['config' => $config['tables']]);
     $emailFactory = $builder->addDefinition($this->prefix('emailFactory'))->setClass('Trejjam\\Emailing\\EmailFactory')->addSetup('setConfig', ['config' => $config['connect']]);
     $imapFactory = $builder->addDefinition($this->prefix('imapFactory'))->setClass('Trejjam\\Emailing\\ImapFactory')->addSetup('setConfig', ['config' => $config['connect'], 'imapConfig' => $config['rabbitmq']['imap']]);
     $rabbitmq = $builder->addDefinition($this->prefix('rabbit.mailer'))->setClass('Trejjam\\Emailing\\RabbitMq\\Mailer')->addSetup('setConfig', ['config' => $config['rabbitmq']]);
     if (class_exists('\\Symfony\\Component\\Console\\Command\\Command')) {
         $command = ['cliInstall' => 'CliInstall', 'cliImap' => 'CliImap', 'cliGroups' => 'CliGroups', 'cliSenders' => 'CliSenders'];
         foreach ($command as $k => $v) {
             $builder->addDefinition($this->prefix($k))->setClass('Trejjam\\Emailing\\' . $v)->addTag('kdyby.console.command');
         }
     }
     if ($config["cache"]["use"]) {
         $builder->addDefinition($this->prefix("cache"))->setFactory('Nette\\Caching\\Cache')->setArguments(['@cacheStorage', $config["cache"]["name"]])->setAutowired(FALSE);
         $groups->setArguments([$this->prefix("@cache")])->addSetup("setCacheParams", ["cacheParams" => [Nette\Caching\Cache::EXPIRE => $config["cache"]["timeout"]]]);
         $senders->setArguments([$this->prefix("@cache")])->addSetup("setCacheParams", ["cacheParams" => [Nette\Caching\Cache::EXPIRE => $config["cache"]["timeout"]]]);
     }
 }
예제 #22
0
 public function loadConfiguration()
 {
     parent::loadConfiguration();
     $this->registerClasses();
     $this->registerFactories();
 }
예제 #23
0
 public function loadConfiguration()
 {
     parent::loadConfiguration();
     $containerBuilder = $this->getContainerBuilder();
     $containerBuilder->addDefinition($this->prefix('passwordManager'))->setClass('JR\\Passwords\\PasswordManager\\NettePasswordManager');
 }