addConfig() публичный Метод

Adds configuration file.
public addConfig ( $file ) : self
Результат self
Пример #1
0
 public static function initialize(Configurator $configurator)
 {
     $configurator->addConfig(__DIR__ . '/config/base.neon');
     $configurator->addConfig(__DIR__ . '/config/routes.neon');
     $configurator->addConfig(__DIR__ . '/config/services.neon');
     $configurator->addConfig(__DIR__ . '/config/presenters.neon');
 }
Пример #2
0
 /**
  * @param Configurator $configurator
  */
 protected function loadConfigFiles(Configurator $configurator)
 {
     if ($this->autoloadConfig === TRUE || is_array($this->autoloadConfig)) {
         $scanDirs = $this->autoloadConfig === TRUE ? [$this->appDir] : $this->autoloadConfig;
         $cache = $this->createCache();
         $files = $cache->load(self::CACHE_NAMESPACE);
         if ($files === NULL) {
             $files = [0 => []];
             foreach (Finder::findFiles('*.neon')->from($scanDirs) as $path => $file) {
                 $content = Neon::decode(file_get_contents($path));
                 if (!is_array($content) || !array_key_exists('autoload', $content)) {
                     continue;
                 }
                 $autoload = Arrays::get($content, ['autoload', 0], FALSE);
                 if ($autoload === FALSE) {
                     continue;
                 }
                 $autoload = is_int($autoload) ? $autoload : 0;
                 if (!isset($files[$autoload])) {
                     $files[$autoload] = [];
                 }
                 $files[$autoload][] = $path;
             }
             $cache->save(self::CACHE_NAMESPACE, $files);
         }
         foreach ($files as $priorityFiles) {
             foreach ($priorityFiles as $config) {
                 $configurator->addConfig($config);
             }
         }
     }
     foreach ($this->configs as $config) {
         $configurator->addConfig($config);
     }
 }
 protected function createContainer()
 {
     $configurator = new Nette\Configurator();
     $configurator->setTempDirectory(dirname(TEMP_DIR));
     // shared container for performance purposes
     $configurator->setDebugMode(FALSE);
     $configurator->addParameters(['appDir' => __DIR__ . '/../../app']);
     $configurator->addConfig(__DIR__ . '/../../app/config/config.neon');
     $configurator->addConfig(__DIR__ . '/../../app/config/' . getenv('DB') . '.neon');
     $configurator->addConfig(__DIR__ . '/../config/tests.neon');
     return $configurator->createContainer();
 }
Пример #4
0
 /**
  * @param string|null $customConfig
  * @return \Nette\DI\Container
  */
 protected function createContainer($customConfig = null)
 {
     if (!$this->context) {
         $config = new Configurator();
         $config->setTempDirectory(TEMP_DIR);
         $config->addParameters(['appDir' => __DIR__ . '/app']);
         $config->addConfig(__DIR__ . '/app/config/config.neon');
         if ($customConfig) {
             $config->addConfig(FileMock::create($customConfig, 'neon'));
         }
         $this->context = $config->createContainer();
     }
     return $this->context;
 }
 /**
  * @return Container
  */
 public function create()
 {
     $configurator = new Configurator();
     $configurator->setTempDirectory(TEMP_DIR);
     $configurator->addConfig(__DIR__ . '/config/default.neon');
     return $configurator->createContainer();
 }
Пример #6
0
 /**
  * @param Configurator $configurator
  * @param string[] $configFileNames
  * @return Configurator
  */
 protected function loadConfiguration(Configurator $configurator, array $configFileNames)
 {
     foreach ($configFileNames as $configFile) {
         $configurator->addConfig(PathTool::getPath(array(APP_DIR, 'config', $configFile), FALSE));
     }
     return $configurator;
 }
 public function create() : Container
 {
     $configurator = new Configurator();
     $configurator->setDebugMode(true);
     $configurator->setTempDirectory($this->createAndReturnTempDir());
     $configurator->addConfig(__DIR__ . '/../config/config.neon');
     return $configurator->createContainer();
 }
Пример #8
0
 protected function createContainer()
 {
     $configurator = new Configurator();
     $configurator->setDebugMode(FALSE);
     $configurator->setTempDirectory(TEMP_DIR);
     $configurator->addConfig(__DIR__ . '/../config.neon');
     return $configurator->createContainer();
 }
Пример #9
0
 protected function createContainer()
 {
     $configurator = new Configurator();
     $configurator->addParameters(array('wwwDir' => $this->wwwDir));
     $configurator->setTempDirectory(TEMP_DIR);
     $configurator->addConfig(__DIR__ . '/../config.neon');
     return $configurator->createContainer();
 }
Пример #10
0
 /**
  * Create new DI container.
  */
 protected function createContainer()
 {
     // Create bootstrap configurator
     $config = new Configurator();
     $config->setTempDirectory(sys_get_temp_dir());
     $config->addConfig(__DIR__ . '/../Helpers/config.neon');
     // Create DI container
     return $config->createContainer();
 }
 /**
  * @return Container
  */
 public function createContainer()
 {
     $config = new Configurator();
     $config->setTempDirectory($this->temporaryDirectory);
     $config->addParameters($this->parameters);
     foreach ($this->configurationFiles as $file => $section) {
         $config->addConfig($file, $section);
     }
     return $config->createContainer();
 }
Пример #12
0
 /**
  * @return \SystemContainer|\Nette\DI\Container
  */
 protected function createContainer()
 {
     $config = new Configurator();
     $config->setTempDirectory(TEMP_DIR);
     $cronExtension = $this->extension;
     $config->onCompile[] = function ($config, Compiler $compiler) use($cronExtension) {
         $compiler->addExtension('cron', $cronExtension);
     };
     $config->addConfig(__DIR__ . '/config.neon');
     return $config->createContainer();
 }
Пример #13
0
 /**
  * @param $configFile
  * @return Nette\DI\Container
  */
 public static function createContainer($configFile = NULL)
 {
     $configurator = new Nette\Configurator();
     $configurator->setTempDirectory(TEMP_DIR);
     $configurator->addParameters(array('fixturesDir' => FIXTURES_DIR, 'tempDir' => TEMP_DIR, 'appDir' => __DIR__ . '/../../app', 'wwwDir' => WWW_DIR, 'vendorDir' => __DIR__ . '/../../vendor'));
     $configurator->addConfig(__DIR__ . '/../../app/config/_config.neon');
     $configurator->addConfig(__DIR__ . '/../../app/config/_dev.neon');
     $configurator->addConfig(__DIR__ . '/../config.tests.neon');
     if ($configFile !== NULL) {
         $configurator->addConfig($configFile);
     }
     $extension = new Extension();
     $extension->register($configurator, 'assetic');
     $container = $configurator->createContainer();
     /** @var Nette\Http\IRequest $httpRequest */
     $httpRequest = $container->getByType('Nette\\Http\\IRequest');
     $httpRequest->getUrl()->setHost('localhost');
     // with empty host not work properly
     return $container;
 }
Пример #14
0
 /**
  * @param $configFile
  * @return Nette\DI\Container
  */
 public static function createContainer($configFile = NULL)
 {
     $configurator = new Nette\Configurator();
     $configurator->setTempDirectory(TEMP_DIR);
     $configurator->addParameters(array('fixturesDir' => FIXTURES_DIR, 'tempDir' => TEMP_DIR, 'wwwDir' => TEMP_DIR));
     if ($configFile !== NULL) {
         $configurator->addConfig($configFile);
     }
     $extension = new Extension();
     $extension->register($configurator, 'tidy');
     $container = $configurator->createContainer();
     return $container;
 }
Пример #15
0
 /**
  * @param null|string $configFile
  * @param bool $defaultConfig
  * @return Nette\DI\Container|\SystemContainer
  */
 public static function createContainer($configFile = NULL, $defaultConfig = TRUE)
 {
     // create temporary directory
     $tempDir = __DIR__ . '/../temp/' . (isset($_SERVER['argv']) ? md5(serialize($_SERVER['argv'])) : getmypid()) . Nette\Utils\Random::generate();
     Tester\Helpers::purge($tempDir);
     $configurator = new Nette\Configurator();
     $configurator->setTempDirectory($tempDir);
     $configurator->addParameters(array('container' => array('class' => 'SystemContainer_' . md5(time())), 'fixturesDir' => FIXTURES_DIR, 'tempDir' => $tempDir, 'wwwDir' => $tempDir));
     $configurator->addConfig(__DIR__ . '/../nette-reset.neon');
     if ($defaultConfig === TRUE) {
         $configurator->addConfig(__DIR__ . '/../config.neon');
     }
     if ($configFile !== NULL) {
         $configurator->addConfig($configFile);
     }
     $container = $configurator->createContainer();
     /** @var Nette\Http\IRequest $httpRequest */
     $httpRequest = $container->getByType('Nette\\Http\\IRequest');
     $httpRequest->getUrl()->setHost('localhost');
     // with empty host not work properly
     $ems = $container->findByType('Doctrine\\ORM\\EntityManager');
     if (count($ems) === 1) {
         /** @var EntityManager $em */
         $em = $container->getService($ems[0]);
         $schemaTool = new SchemaTool($em);
         $schemaTool->createSchema($em->getMetadataFactory()->getAllMetadata());
     }
     $dms = $container->findByType('Doctrine\\ODM\\MongoDB\\DocumentManager');
     if (count($dms) === 1) {
         /** @var DocumentManager $dm */
         $dm = $container->getService($dms[0]);
         $dm->getSchemaManager()->createDatabases();
         $dm->getSchemaManager()->createCollections();
     }
     return $container;
 }
Пример #16
0
 /**
  * @param $configFile
  * @return Nette\DI\Container
  */
 public static function createContainer($configFile = NULL)
 {
     $configurator = new Nette\Configurator();
     $configurator->setTempDirectory(TEMP_DIR);
     $configurator->addParameters(array('fixturesDir' => FIXTURES_DIR, 'tempDir' => TEMP_DIR, 'wwwDir' => TEMP_DIR));
     if ($configFile !== NULL) {
         $configurator->addConfig($configFile);
     }
     $extension = new Extension();
     $extension->register($configurator, 'assetic');
     $container = $configurator->createContainer();
     /** @var Nette\Http\IRequest $httpRequest */
     $httpRequest = $container->getByType('Nette\\Http\\IRequest');
     $httpRequest->getUrl()->setHost('localhost');
     // with empty host not work properly
     echo "tempDir: " . TEMP_DIR . PHP_EOL;
     return $container;
 }
Пример #17
0
 protected function loadConfigFiles(Nette\Configurator $configurator)
 {
     // load neon files from all config folders within the app
     if ($this->autoloadConfig) {
         $cacheJournal = new Nette\Caching\Storages\FileJournal($this->tempDir);
         $cacheStorage = new Nette\Caching\Storages\FileStorage($this->tempDir . '/cache', $cacheJournal);
         $cache = new Nette\Caching\Cache($cacheStorage, 'configFiles');
         $files = $cache->load('configFiles');
         if ($files === NULL) {
             $files = [0 => []];
             foreach (Nette\Utils\Finder::findFiles('config/*.neon')->from($this->appDir, $this->rootDir . '/zax') as $path => $file) {
                 // check neon file contents for priority
                 $content = Nette\Neon\Neon::decode(file_get_contents($path));
                 if (isset($content['priority']) && isset($content['priority'][0])) {
                     $priority = $content['priority'][0];
                     if (!isset($files[$priority])) {
                         $files[$priority] = [];
                     }
                     $files[$priority][] = $path;
                 } else {
                     $files[0][] = $path;
                 }
             }
             $cache->save('configFiles', $files);
         }
         foreach ($files as $priorityFiles) {
             foreach ($priorityFiles as $config) {
                 $configurator->addConfig($config);
             }
         }
     }
     foreach ($this->configs as $config) {
         $configurator->addConfig($config);
     }
 }
Пример #18
0
 /**
  * Loads global configuration from file and process it.
  * @param  string
  * @param  string
  * @return Nette\Utils\ArrayHash
  */
 public static function loadConfig($file = NULL, $section = NULL)
 {
     if (self::$createdAt) {
         throw new Nette\InvalidStateException('Nette\\Configurator has already been created automatically by Nette\\Environment at ' . self::$createdAt);
     } elseif (!defined('TEMP_DIR')) {
         throw new Nette\InvalidStateException('Nette\\Environment requires constant TEMP_DIR with path to temporary directory.');
     }
     $configurator = new Nette\Configurator();
     $configurator->setDebugMode(!self::isProduction())->setTempDirectory(TEMP_DIR)->addParameters(array('container' => array('class' => 'EnvironmentContainer')));
     if ($file) {
         $configurator->addConfig($file, $section);
     }
     self::$context = $configurator->createContainer();
     self::$createdAt = '?';
     foreach (debug_backtrace(FALSE) as $row) {
         if (isset($row['file']) && $row['file'] !== __FILE__ && is_file($row['file'])) {
             self::$createdAt = "{$row['file']}:{$row['line']}";
             break;
         }
     }
     return self::getConfig();
 }
Пример #19
0
<?php

namespace NetteAddons;

use Nette\Configurator;
// Load Nette Framework or autoloader generated by Composer
require __DIR__ . '/../vendor/autoload.php';
$configurator = new Configurator();
// Enable Nette Debugger for error visualisation & logging
//$configurator->setDebugMode(TRUE);
$configurator->enableDebugger(__DIR__ . '/../log');
// Specify folder for cache
$configurator->setTempDirectory(__DIR__ . '/../temp');
// Enable RobotLoader - this will load all classes automatically
$configurator->createRobotLoader()->addDirectory(__DIR__)->register();
// Create Dependency Injection container from config.neon file
$configurator->addConfig(__DIR__ . '/config/config.neon');
$configurator->addConfig(__DIR__ . '/config/config.local.neon');
$container = $configurator->createContainer();
return $container;
Пример #20
0
 protected function execute(InputInterface $input, OutputInterface $output) : int
 {
     $rootDir = realpath(__DIR__ . '/../..');
     $tmpDir = $rootDir . '/tmp';
     $confDir = $rootDir . '/conf';
     $configurator = new Configurator();
     $configurator->defaultExtensions = [];
     $configurator->setDebugMode(true);
     $configurator->setTempDirectory($tmpDir);
     $configurator->enableDebugger($tmpDir . '/log');
     $projectConfigFile = $input->getOption('configuration');
     $levelOption = $input->getOption(self::OPTION_LEVEL);
     if ($projectConfigFile === null && $levelOption === null) {
         $levelOption = self::DEFAULT_LEVEL;
     }
     $configFiles = [$confDir . '/config.neon'];
     if ($levelOption !== null) {
         $levelConfigFile = sprintf('%s/config.level%s.neon', $confDir, $levelOption);
         if (!is_file($levelConfigFile)) {
             $output->writeln(sprintf('Level config file %s was not found.', $levelConfigFile));
             return 1;
         }
         $configFiles[] = $levelConfigFile;
     }
     if ($projectConfigFile !== null) {
         $projectConfigRealFilePath = realpath($projectConfigFile);
         if (!is_file($projectConfigFile)) {
             $output->writeln(sprintf('Project config file at path %s does not exist.', $projectConfigRealFilePath !== false ? $projectConfigRealFilePath : $projectConfigFile));
             return 1;
         }
         $configFiles[] = $projectConfigRealFilePath;
     }
     foreach ($configFiles as $configFile) {
         $configurator->addConfig($configFile);
     }
     $configurator->addParameters(['rootDir' => $rootDir]);
     $container = $configurator->createContainer();
     if (!isset($container->parameters['customRulesetUsed'])) {
         $output->writeln('');
         $output->writeln('<comment>No rules detected</comment>');
         $output->writeln('');
         $output->writeln('You have the following choices:');
         $output->writeln('');
         $output->writeln('* while running the analyse option, use the <info>--level</info> option to adjust your rule level - the higher the stricter');
         $output->writeln('');
         $output->writeln(sprintf('* create your own <info>custom ruleset</info> by selecting which rules you want to check by copying the service definitions from the built-in config level files in <options=bold>%s</>.', realpath(__DIR__ . '/../../conf')));
         $output->writeln('  * in this case, don\'t forget to define parameter <options=bold>customRulesetUsed</> in your config file.');
         $output->writeln('');
         return 1;
     }
     Debugger::$browser = $container->parameters['debug_cli_browser'];
     foreach ($container->parameters['autoload_files'] as $autoloadFile) {
         require_once $autoloadFile;
     }
     if (count($container->parameters['autoload_directories']) > 0) {
         $robotLoader = new \Nette\Loaders\RobotLoader();
         $robotLoader->setCacheStorage(new \Nette\Caching\Storages\MemoryStorage());
         foreach ($container->parameters['autoload_directories'] as $directory) {
             $robotLoader->addDirectory($directory);
         }
         $robotLoader->register();
     }
     $application = $container->getByType(AnalyseApplication::class);
     return $application->analyse($input->getArgument('paths'), new ErrorsConsoleStyle($input, $output));
 }
Пример #21
0
 /**
  * @param Configurator
  * @return void
  */
 protected function setupConfiguration(Configurator $configurator)
 {
     if ($this->options->getPrimaryConfig() !== NULL) {
         $configurator->addConfig($this->options->getPrimaryConfig()->getFile());
     }
     if ($this->options->getLocalConfig() !== NULL && Helpers::detectDevelopmentEnvironment()) {
         $configurator->addConfig($this->options->getLocalConfig()->getFile());
     }
     foreach ($this->options->getConfigs() as $config) {
         $configurator->addConfig($config->getFile());
     }
 }
Пример #22
0
 private function addConfigFiles(Configurator $configurator)
 {
     // general config
     $configurator->addConfig($this->paths['config'] . '/default.neon');
     // debug mode dependent config
     if ($this->debugMode && file_exists($debugConfig = $this->paths['config'] . '/debug.neon')) {
         $configurator->addConfig($debugConfig);
     }
     // environment dependent config
     if (file_exists($envConfig = $this->paths['config'] . '/env.' . $this->environment . '.neon')) {
         $configurator->addConfig($envConfig);
     }
     // local machine config
     if (file_exists($localConfig = $this->paths['config'] . '/local.neon')) {
         $configurator->addConfig($localConfig);
     }
 }
Пример #23
0
<?php

/**
 * init test dependent on nette container
 */
use Nette\Configurator;
require_once __DIR__ . '/../unit/bootstrap.php';
$rootDir = __DIR__ . '/../../';
$configDir = $rootDir . 'app/config';
$paths = ['root' => $rootDir, 'log' => $rootDir . '/log'];
$configurator = new Configurator();
$configurator->addParameters(['appDir' => __DIR__ . '/../../app']);
$configurator->setTempDirectory(TEMP_DIR);
$configurator->addConfig("{$configDir}/default.neon");
if (file_exists("{$configDir}/local.neon")) {
    $configurator->addConfig("{$configDir}/local.neon", $configurator::NONE);
}
$configurator->addConfig(['doctrine' => ['dbname' => '%database.dbname_test%']]);
$configurator->addParameters(['paths' => $paths]);
return $configurator->createContainer();
Пример #24
0
 protected static function configureConfigurator(Configurator $configurator, $configDir)
 {
     $configurator->addParameters(['appDir' => static::$appDir, 'paths' => ['root' => static::$rootDir, 'log' => static::$rootDir . '/log']]);
     $configurator->addConfig("{$configDir}/default.neon");
     if (file_exists("{$configDir}/local.neon")) {
         $configurator->addConfig("{$configDir}/local.neon");
     }
     $configurator->addConfig(['parameters' => ['database' => ['dbname' => '%database.dbname_test%']]]);
 }
Пример #25
0
 protected function execute(InputInterface $input, OutputInterface $output) : int
 {
     $rootDir = realpath(__DIR__ . '/../..');
     $tmpDir = $rootDir . '/tmp';
     $confDir = $rootDir . '/conf';
     $configurator = new Configurator();
     $configurator->defaultExtensions = [];
     $configurator->setDebugMode(true);
     $configurator->setTempDirectory($tmpDir);
     $projectConfigFile = $input->getOption('configuration');
     $levelOption = $input->getOption(self::OPTION_LEVEL);
     $defaultLevelUsed = false;
     if ($projectConfigFile === null && $levelOption === null) {
         $levelOption = self::DEFAULT_LEVEL;
         $defaultLevelUsed = true;
     }
     $configFiles = [$confDir . '/config.neon'];
     if ($levelOption !== null) {
         $levelConfigFile = sprintf('%s/config.level%s.neon', $confDir, $levelOption);
         if (!is_file($levelConfigFile)) {
             $output->writeln(sprintf('Level config file %s was not found.', $levelConfigFile));
             return 1;
         }
         $configFiles[] = $levelConfigFile;
     }
     if ($projectConfigFile !== null) {
         $projectConfigRealFilePath = realpath($projectConfigFile);
         if (!is_file($projectConfigFile)) {
             $output->writeln(sprintf('Project config file at path %s does not exist.', $projectConfigRealFilePath !== false ? $projectConfigRealFilePath : $projectConfigFile));
             return 1;
         }
         $configFiles[] = $projectConfigRealFilePath;
     }
     foreach ($configFiles as $configFile) {
         $configurator->addConfig($configFile);
     }
     $configurator->addParameters(['rootDir' => $rootDir, 'tmpDir' => $tmpDir]);
     $container = $configurator->createContainer();
     $consoleStyle = new ErrorsConsoleStyle($input, $output);
     $memoryLimitFile = $container->parameters['memoryLimitFile'];
     if (file_exists($memoryLimitFile)) {
         $consoleStyle->note(sprintf("PHPStan crashed in the previous run probably because of excessive memory consumption.\nIt consumed around %s of memory.\n\nTo avoid this issue, increase the memory_limit directive in your php.ini file here:\n%s\n\nIf you can't or don't want to change the system-wide memory limit, run PHPStan like this:\n%s", file_get_contents($memoryLimitFile), php_ini_loaded_file(), sprintf('php -d memory_limit=XX %s', implode(' ', $_SERVER['argv']))));
         unlink($memoryLimitFile);
     }
     if (PHP_VERSION_ID >= 70100 && !property_exists(Catch_::class, 'types')) {
         $consoleStyle->note('You\'re running PHP >= 7.1, but you still have PHP-Parser version 2.x. This will lead to parse errors in case you use PHP 7.1 syntax like nullable parameters, iterable and void typehints, union exception types, or class constant visibility. Update to PHP-Parser 3.x to dismiss this message.');
     }
     $this->setUpSignalHandler($consoleStyle, $memoryLimitFile);
     if (!isset($container->parameters['customRulesetUsed'])) {
         $output->writeln('');
         $output->writeln('<comment>No rules detected</comment>');
         $output->writeln('');
         $output->writeln('You have the following choices:');
         $output->writeln('');
         $output->writeln('* while running the analyse option, use the <info>--level</info> option to adjust your rule level - the higher the stricter');
         $output->writeln('');
         $output->writeln(sprintf('* create your own <info>custom ruleset</info> by selecting which rules you want to check by copying the service definitions from the built-in config level files in <options=bold>%s</>.', realpath(__DIR__ . '/../../conf')));
         $output->writeln('  * in this case, don\'t forget to define parameter <options=bold>customRulesetUsed</> in your config file.');
         $output->writeln('');
         return $this->handleReturn(1, $memoryLimitFile);
     } elseif ($container->parameters['customRulesetUsed']) {
         $defaultLevelUsed = false;
     }
     foreach ($container->parameters['autoload_files'] as $autoloadFile) {
         require_once $autoloadFile;
     }
     if (count($container->parameters['autoload_directories']) > 0) {
         $robotLoader = new \Nette\Loaders\RobotLoader();
         $robotLoader->setCacheStorage(new \Nette\Caching\Storages\MemoryStorage());
         foreach ($container->parameters['autoload_directories'] as $directory) {
             $robotLoader->addDirectory($directory);
         }
         $robotLoader->register();
     }
     $application = $container->getByType(AnalyseApplication::class);
     return $this->handleReturn($application->analyse($input->getArgument('paths'), $consoleStyle, $defaultLevelUsed), $memoryLimitFile);
 }