container default loaders

This commit is contained in:
Yuri Kuznetsov
2020-06-22 10:33:34 +03:00
parent 5c8d6ee901
commit 57360e5fea
7 changed files with 245 additions and 53 deletions

View File

@@ -40,10 +40,13 @@ class Container
{
private $data = [];
private $loaderClassNames;
protected $configuration;
public function __construct(string $configurationClassName)
public function __construct(string $configurationClassName, array $loaderClassNames = [])
{
$this->loaderClassNames = $loaderClassNames;
$this->configuration = $this->get('injectableFactory')->create($configurationClassName);
}
@@ -100,7 +103,7 @@ class Container
return;
}
$loaderClassName = $this->configuration->getLoaderClassName($name);
$loaderClassName = $this->loaderClassNames[$name] ?? $this->configuration->getLoaderClassName($name);
$object = null;
@@ -147,40 +150,6 @@ class Container
);
}
protected function loadLog()
{
$config = $this->get('config');
$path = $config->get('logger.path', 'data/logs/espo.log');
$rotation = $config->get('logger.rotation', true);
$log = new \Espo\Core\Utils\Log('Espo');
$levelCode = $log::toMonologLevel($config->get('logger.level', 'WARNING'));
if ($rotation) {
$maxFileNumber = $config->get('logger.maxFileNumber', 30);
$handler = new \Espo\Core\Utils\Log\Monolog\Handler\RotatingFileHandler($path, $maxFileNumber, $levelCode);
} else {
$handler = new \Espo\Core\Utils\Log\Monolog\Handler\StreamHandler($path, $levelCode);
}
$log->pushHandler($handler);
$errorHandler = new \Monolog\ErrorHandler($log);
$errorHandler->registerExceptionHandler(null, false);
$errorHandler->registerErrorHandler([], false);
$GLOBALS['log'] = $log;
return $log;
}
protected function loadFileManager()
{
return new \Espo\Core\Utils\File\Manager(
$this->get('config')
);
}
protected function loadControllerManager()
{
return new \Espo\Core\ControllerManager(
@@ -195,13 +164,6 @@ class Container
return $this->get('entityManager')->getEntity('Preferences', $this->get('user')->id);
}
protected function loadConfig()
{
return new \Espo\Core\Utils\Config(
new \Espo\Core\Utils\File\Manager()
);
}
protected function loadHookManager()
{
return new \Espo\Core\HookManager(
@@ -237,14 +199,6 @@ class Container
);
}
protected function loadMetadata()
{
return new \Espo\Core\Utils\Metadata(
$this->get('fileManager'),
$this->get('config')->get('useCache')
);
}
protected function loadSchema()
{
return new \Espo\Core\Utils\Database\Schema\Schema(