refactoring

This commit is contained in:
Yuri Kuznetsov
2021-06-18 11:44:33 +03:00
parent beae99c71b
commit 703279a2f8
7 changed files with 58 additions and 101 deletions
+13 -19
View File
@@ -31,39 +31,33 @@ namespace Espo\Core\Loaders;
use Espo\Core\{
Container\Loader,
Utils\Metadata,
Utils\Config,
Utils\File\Manager as FileManager,
Utils\Language as LanguageService,
Utils\DataCache,
InjectableFactory,
};
class BaseLanguage implements Loader
{
protected $fileManager;
private $injectableFactory;
protected $config;
protected $metadata;
protected $dataCache;
public function __construct(FileManager $fileManager, Config $config, Metadata $metadata, DataCache $dataCache)
public function __construct(InjectableFactory $injectableFactory, Config $config)
{
$this->fileManager = $fileManager;
$this->injectableFactory = $injectableFactory;
$this->config = $config;
$this->metadata = $metadata;
$this->dataCache = $dataCache;
}
public function load(): LanguageService
{
return new LanguageService(
'en_US',
$this->fileManager,
$this->metadata,
$this->dataCache,
$this->config->get('useCache') ?? false
);
return $this->injectableFactory->createWith(LanguageService::class, [
'language' => $this->getLanguage(),
'useCache' => $this->config->get('useCache') ?? false,
]);
}
protected function getLanguage(): string
{
return 'en_US';
}
}
@@ -29,20 +29,12 @@
namespace Espo\Core\Loaders;
use Espo\Core\{
Utils\Language as LanguageService,
};
use Espo\Core\Utils\Language as LanguageService;
class DefaultLanguage extends BaseLanguage
{
public function load(): LanguageService
protected function getLanguage(): string
{
return new LanguageService(
LanguageService::detectLanguage($this->config),
$this->fileManager,
$this->metadata,
$this->dataCache,
$this->config->get('useCache') ?? false
);
return LanguageService::detectLanguage($this->config);
}
}
+10 -23
View File
@@ -31,49 +31,36 @@ namespace Espo\Core\Loaders;
use Espo\Core\{
Container\Loader,
Utils\Metadata,
Utils\Config,
Utils\File\Manager as FileManager,
Utils\Language as LanguageService,
Utils\DataCache,
InjectableFactory,
};
use Espo\Entities\Preferences;
class Language implements Loader
{
protected $fileManager;
private $injectableFactory;
protected $config;
private $config;
protected $metadata;
protected $dataCache;
protected $preferences;
private $preferences;
public function __construct(
FileManager $fileManager,
InjectableFactory $injectableFactory,
Config $config,
Metadata $metadata,
DataCache $dataCache,
Preferences $preferences
) {
$this->fileManager = $fileManager;
$this->injectableFactory = $injectableFactory;
$this->config = $config;
$this->metadata = $metadata;
$this->dataCache = $dataCache;
$this->preferences = $preferences;
}
public function load(): LanguageService
{
return new LanguageService(
LanguageService::detectLanguage($this->config, $this->preferences),
$this->fileManager,
$this->metadata,
$this->dataCache,
$this->config->get('useCache') ?? false
);
return $this->injectableFactory->createWith(LanguageService::class, [
'language' => LanguageService::detectLanguage($this->config, $this->preferences),
'useCache' => $this->config->get('useCache') ?? false,
]);
}
}
+7 -11
View File
@@ -32,30 +32,26 @@ namespace Espo\Core\Loaders;
use Espo\Core\{
Container\Loader,
Utils\Metadata as MetadataService,
Utils\File\Manager as FileManager,
Utils\DataCache,
Utils\Config,
InjectableFactory,
};
class Metadata implements Loader
{
private $fileManager;
private $dataCache;
private $injectableFactory;
private $config;
public function __construct(FileManager $fileManager, DataCache $dataCache, Config $config)
public function __construct(InjectableFactory $injectableFactory, Config $config)
{
$this->fileManager = $fileManager;
$this->dataCache = $dataCache;
$this->injectableFactory = $injectableFactory;
$this->config = $config;
}
public function load(): MetadataService
{
$useCache = $this->config->get('useCache') ?? false;
return new MetadataService($this->fileManager, $this->dataCache, $useCache);
return $this->injectableFactory->createWith(MetadataService::class, [
'useCache' => $this->config->get('useCache') ?? false,
]);
}
}
@@ -31,11 +31,9 @@ namespace Espo\Core\Portal\Loaders;
use Espo\Core\{
Container\Loader,
Utils\Metadata,
Utils\Config,
Utils\File\Manager as FileManager,
Portal\Utils\Language as LanguageService,
Utils\DataCache,
InjectableFactory,
};
use Espo\Entities\{
@@ -45,43 +43,32 @@ use Espo\Entities\{
class Language implements Loader
{
private $fileManager;
private $injectableFactory;
private $config;
private $metadata;
private $dataCache;
private $preferences;
private $portal;
public function __construct(
FileManager $fileManager,
InjectableFactory $injectableFactory,
Config $config,
Metadata $metadata,
DataCache $dataCache,
Preferences $preferences,
Portal $portal
) {
$this->fileManager = $fileManager;
$this->injectableFactory = $injectableFactory;
$this->config = $config;
$this->metadata = $metadata;
$this->dataCache = $dataCache;
$this->preferences = $preferences;
$this->portal = $portal;
}
public function load(): LanguageService
{
$language = new LanguageService(
LanguageService::detectLanguage($this->config, $this->preferences),
$this->fileManager,
$this->metadata,
$this->dataCache,
$this->config->get('useCache')
);
$language = $this->injectableFactory->createWith(LanguageService::class, [
'language' => LanguageService::detectLanguage($this->config, $this->preferences),
'useCache' => $this->config->get('useCache') ?? false,
]);
$language->setPortal($this->portal);
+4 -13
View File
@@ -75,29 +75,20 @@ class Language
?string $language,
FileManager $fileManager,
Metadata $metadata,
DataCache $dataCache = null,
FileUnifier $unifier,
DataCache $dataCache,
bool $useCache = false,
bool $noCustom = false
) {
if ($language) {
$this->currentLanguage = $language;
}
else {
$this->currentLanguage = $this->defaultLanguage;
}
$this->currentLanguage = $language ?? $this->defaultLanguage;
$this->fileManager = $fileManager;
$this->metadata = $metadata;
$this->unifier = $unifier;
$this->dataCache = $dataCache;
$this->useCache = $useCache;
$this->noCustom = $noCustom;
if (!$this->dataCache) {
$this->useCache = false;
}
$this->unifier = new FileUnifier($this->fileManager, $this->metadata);
}
public function getLanguage(): string
+13 -3
View File
@@ -35,6 +35,7 @@ use Espo\Core\Utils\Metadata;
use Espo\Core\Utils\Language;
use Espo\Core\Utils\DataCache;
use Espo\Core\Utils\File\Manager as FileManager;
use Espo\Core\Utils\File\Unifier;
class LanguageTest extends \PHPUnit\Framework\TestCase
{
@@ -50,7 +51,7 @@ class LanguageTest extends \PHPUnit\Framework\TestCase
'customPath' => 'tests/unit/testData/Utils/I18n/Espo/Custom/Resources/i18n/{language}',
];
protected function setUp() : void
protected function setUp(): void
{
$this->fileManager = new FileManager();
@@ -66,7 +67,16 @@ class LanguageTest extends \PHPUnit\Framework\TestCase
]
));
$this->object = new Language(null, $this->fileManager, $this->metadata, $this->dataCache, false);
$this->unifier = new Unifier($this->fileManager, $this->metadata);
$this->object = new Language(
null,
$this->fileManager,
$this->metadata,
$this->unifier,
$this->dataCache,
false
);
$this->reflection = new ReflectionHelper($this->object);
@@ -74,7 +84,7 @@ class LanguageTest extends \PHPUnit\Framework\TestCase
$this->reflection->setProperty('currentLanguage', 'en_US');
}
protected function tearDown() : void
protected function tearDown(): void
{
$this->object = NULL;
}