public function init(array $initConfig = array(), InputInterface $input = null, OutputInterface $output = null)
{
if ($this->_isInitialized) {
return;
}
// Suppress DateTime warnings
date_default_timezone_set(@date_default_timezone_get());
// Initialize EventDispatcher early
$this->dispatcher = new EventDispatcher();
$this->setDispatcher($this->dispatcher);
$input = $input ?: new ArgvInput();
$output = $output ?: new ConsoleOutput();
if (null !== $this->config) {
throw new UnexpectedValueException(sprintf('Config already initialized'));
}
$loadExternalConfig = !$input->hasParameterOption('--skip-config');
$this->config = $config = new Config($initConfig, $this->isPharMode(), $output);
if ($this->configurationLoaderInjected) {
$config->setLoader($this->configurationLoaderInjected);
}
$config->loadPartialConfig($loadExternalConfig);
$this->detectMagento($input, $output);
$configLoader = $config->getLoader();
$configLoader->loadStageTwo($this->_magentoRootFolder, $loadExternalConfig, $this->_magerunStopFileFolder);
$config->load();
if ($autoloader = $this->autoloader) {
$config->registerCustomAutoloaders($autoloader);
$this->registerEventSubscribers();
$config->registerCustomCommands($this);
}
$this->registerHelpers();
$this->_isInitialized = true;
}