From 41453b0fb37b5975c01ab79b682eee31cf9b9c47 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Mon, 17 Jul 2023 16:46:19 +0300 Subject: [PATCH] refactor --- .../metadata/app/portalContainerServices.json | 6 +++--- .../Espo/Tools/Layout/CustomLayoutService.php | 5 ++--- .../Layout.php => Tools/Layout/LayoutProvider.php} | 5 +++-- .../Layout/PortalLayoutProvider.php} | 5 ++--- application/Espo/Tools/Layout/Service.php | 7 +++---- .../Espo/Tools/LayoutManager/LayoutManager.php | 12 +++++++----- tests/unit/Espo/Core/Utils/LayoutTest.php | 6 +++--- 7 files changed, 23 insertions(+), 23 deletions(-) rename application/Espo/{Core/Utils/Layout.php => Tools/Layout/LayoutProvider.php} (97%) rename application/Espo/{Core/Portal/Utils/Layout.php => Tools/Layout/PortalLayoutProvider.php} (95%) diff --git a/application/Espo/Resources/metadata/app/portalContainerServices.json b/application/Espo/Resources/metadata/app/portalContainerServices.json index 00f6bf87d3..a9f0728314 100644 --- a/application/Espo/Resources/metadata/app/portalContainerServices.json +++ b/application/Espo/Resources/metadata/app/portalContainerServices.json @@ -1,8 +1,8 @@ { - "layout": { - "className": "Espo\\Core\\Portal\\Utils\\Layout" + "layoutProvider": { + "className": "Espo\\Tools\\Layout\\PortalLayoutProvider" }, "themeManager": { "className": "Espo\\Core\\Portal\\Utils\\ThemeManager" } -} \ No newline at end of file +} diff --git a/application/Espo/Tools/Layout/CustomLayoutService.php b/application/Espo/Tools/Layout/CustomLayoutService.php index b0d6e88868..936e2ab3ec 100644 --- a/application/Espo/Tools/Layout/CustomLayoutService.php +++ b/application/Espo/Tools/Layout/CustomLayoutService.php @@ -36,7 +36,6 @@ use Espo\Core\Exceptions\Error; use Espo\Core\Exceptions\Forbidden; use Espo\Core\Utils\File\Manager as FileManager; use Espo\Core\Utils\Language; -use Espo\Core\Utils\Layout; use Espo\Core\Utils\Metadata; use RuntimeException; @@ -46,7 +45,7 @@ class CustomLayoutService private Metadata $metadata, private FileManager $fileManager, private Language $baseLanguage, - private Layout $layout, + private LayoutProvider $layoutProvider, private DataManager $dataManager ) {} @@ -75,7 +74,7 @@ class CustomLayoutService if ( $this->metadata->get(['clientDefs', $scope, 'additionalLayouts', $name]) || $this->fileManager->exists("application/Espo/Resources/defaults/layouts/$name") || - $this->layout->get($scope, $name) + $this->layoutProvider->get($scope, $name) ) { throw Conflict::createWithBody( "Layout $name already exists.", diff --git a/application/Espo/Core/Utils/Layout.php b/application/Espo/Tools/Layout/LayoutProvider.php similarity index 97% rename from application/Espo/Core/Utils/Layout.php rename to application/Espo/Tools/Layout/LayoutProvider.php index 1caa840de3..6f1b6657f0 100644 --- a/application/Espo/Core/Utils/Layout.php +++ b/application/Espo/Tools/Layout/LayoutProvider.php @@ -27,15 +27,16 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -namespace Espo\Core\Utils; +namespace Espo\Tools\Layout; use Espo\Core\InjectableFactory; use Espo\Core\Utils\File\Manager as FileManager; +use Espo\Core\Utils\Json; use Espo\Core\Utils\Resource\FileReader; use Espo\Core\Utils\Resource\FileReader\Params as FileReaderParams; use RuntimeException; -class Layout +class LayoutProvider { private string $defaultPath = 'application/Espo/Resources/defaults/layouts'; diff --git a/application/Espo/Core/Portal/Utils/Layout.php b/application/Espo/Tools/Layout/PortalLayoutProvider.php similarity index 95% rename from application/Espo/Core/Portal/Utils/Layout.php rename to application/Espo/Tools/Layout/PortalLayoutProvider.php index a1bc8c745f..37421133be 100644 --- a/application/Espo/Core/Portal/Utils/Layout.php +++ b/application/Espo/Tools/Layout/PortalLayoutProvider.php @@ -27,13 +27,12 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -namespace Espo\Core\Portal\Utils; +namespace Espo\Tools\Layout; -use Espo\Core\Utils\Layout as LayoutBase; use Espo\Core\Utils\Resource\FileReader\Params as FileReaderParams; use RuntimeException; -class Layout extends LayoutBase +class PortalLayoutProvider extends LayoutProvider { public function get(string $scope, string $name): ?string { diff --git a/application/Espo/Tools/Layout/Service.php b/application/Espo/Tools/Layout/Service.php index a84d3a16ae..f150b52a3b 100644 --- a/application/Espo/Tools/Layout/Service.php +++ b/application/Espo/Tools/Layout/Service.php @@ -37,7 +37,6 @@ use Espo\Core\Exceptions\Forbidden; use Espo\Core\Exceptions\NotFound; use Espo\Core\ORM\EntityManager; use Espo\Core\Utils\Json; -use Espo\Core\Utils\Layout as LayoutUtil; use Espo\Core\Utils\Metadata; use Espo\Entities\LayoutSet; use Espo\Entities\Portal; @@ -52,7 +51,7 @@ class Service { public function __construct( private Acl $acl, - private LayoutUtil $layout, + private LayoutProvider $layoutProvider, private LayoutManager $layoutManager, private EntityManager $entityManager, private Metadata $metadata, @@ -81,7 +80,7 @@ class Service } if (!$result) { - $data = $this->layout->get($scope, $name) ?? 'false'; + $data = $this->layoutProvider->get($scope, $name) ?? 'false'; $result = Json::decode($data); } @@ -161,7 +160,7 @@ class Service } if (!$data) { - $dataString = $this->layout->get($scope, $name) ?? 'null'; + $dataString = $this->layoutProvider->get($scope, $name) ?? 'null'; $data = Json::decode($dataString); } diff --git a/application/Espo/Tools/LayoutManager/LayoutManager.php b/application/Espo/Tools/LayoutManager/LayoutManager.php index 1fd1fde187..4e738533ec 100644 --- a/application/Espo/Tools/LayoutManager/LayoutManager.php +++ b/application/Espo/Tools/LayoutManager/LayoutManager.php @@ -32,7 +32,7 @@ namespace Espo\Tools\LayoutManager; use Espo\Core\Exceptions\Error; use Espo\Core\Utils\File\Manager as FileManager; use Espo\Core\Utils\Json; -use Espo\Core\Utils\Layout; +use Espo\Tools\Layout\LayoutProvider; use const JSON_PRETTY_PRINT; use const JSON_UNESCAPED_UNICODE; @@ -44,15 +44,17 @@ class LayoutManager */ protected $changedData = []; - public function __construct(protected FileManager $fileManager, protected Layout $layout) - {} + public function __construct( + protected FileManager $fileManager, + protected LayoutProvider $layoutProvider + ) {} /** * Get layout in string format. */ public function get(string $scope, string $name): ?string { - return $this->layout->get($scope, $name); + return $this->layoutProvider->get($scope, $name); } /** @@ -138,6 +140,6 @@ class LayoutManager protected function sanitizeInput(string $name): string { /** @var string */ - return preg_replace("([\.]{2,})", '', $name); + return preg_replace("([.]{2,})", '', $name); } } diff --git a/tests/unit/Espo/Core/Utils/LayoutTest.php b/tests/unit/Espo/Core/Utils/LayoutTest.php index a8dfa129dc..87740d50ff 100644 --- a/tests/unit/Espo/Core/Utils/LayoutTest.php +++ b/tests/unit/Espo/Core/Utils/LayoutTest.php @@ -29,7 +29,7 @@ namespace tests\unit\Espo\Core\Utils; -use Espo\Core\Utils\Layout; +use Espo\Tools\Layout\LayoutProvider; use Espo\Core\Utils\File\Manager as FileManager; use Espo\Core\InjectableFactory; @@ -41,7 +41,7 @@ use Espo\Core\{ class LayoutTest extends \PHPUnit\Framework\TestCase { /** - * @var Layout + * @var LayoutProvider */ private $layout; @@ -65,7 +65,7 @@ class LayoutTest extends \PHPUnit\Framework\TestCase $this->fileReader = $this->createMock(FileReader::class); - $this->layout = new Layout($this->fileManager, $this->injectableFactory, $this->fileReader); + $this->layout = new \Espo\Tools\Layout\LayoutProvider($this->fileManager, $this->injectableFactory, $this->fileReader); } public function testGet1(): void