From fef90ac1dc2f420d98e772f523737d4e5e12d3a8 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Sun, 16 Oct 2022 12:18:50 +0300 Subject: [PATCH] ref --- application/Espo/Controllers/Layout.php | 7 +- application/Espo/Controllers/Metadata.php | 35 ++++--- application/Espo/Controllers/Settings.php | 2 +- application/Espo/Tools/App/AppService.php | 2 +- .../App/MetadataService.php} | 12 +-- .../App/SettingsService.php} | 4 +- .../Layout.php => Tools/Layout/Service.php} | 92 +++++++------------ .../Espo/Record/FieldValidationTest.php | 5 +- 8 files changed, 65 insertions(+), 94 deletions(-) rename application/Espo/{Services/Metadata.php => Tools/App/MetadataService.php} (98%) rename application/Espo/{Services/Settings.php => Tools/App/SettingsService.php} (99%) rename application/Espo/{Services/Layout.php => Tools/Layout/Service.php} (89%) diff --git a/application/Espo/Controllers/Layout.php b/application/Espo/Controllers/Layout.php index 4c6cf2a852..ef9c6497b5 100644 --- a/application/Espo/Controllers/Layout.php +++ b/application/Espo/Controllers/Layout.php @@ -35,14 +35,13 @@ use Espo\Core\Exceptions\BadRequest; use Espo\Core\Api\Request; use Espo\Core\Exceptions\NotFound; -use Espo\Services\Layout as Service; +use Espo\Tools\Layout\Service as Service; use Espo\Entities\User; class Layout { - private $user; - - private $service; + private User $user; + private Service $service; public function __construct(User $user, Service $service) { diff --git a/application/Espo/Controllers/Metadata.php b/application/Espo/Controllers/Metadata.php index 1cb05d5dda..61a57bbc7b 100644 --- a/application/Espo/Controllers/Metadata.php +++ b/application/Espo/Controllers/Metadata.php @@ -30,21 +30,32 @@ namespace Espo\Controllers; use Espo\Core\Exceptions\Forbidden; - -use Espo\Services\Metadata as Service; - -use Espo\Core\{ - Controllers\Base, - Api\Request, -}; +use Espo\Core\Api\Request; +use Espo\Core\Utils\Metadata as MetadataUtil; +use Espo\Entities\User as UserEntity; +use Espo\Tools\App\MetadataService as Service; use stdClass; -class Metadata extends Base +class Metadata { + private Service $service; + private MetadataUtil $metadata; + private UserEntity $user; + + public function __construct( + Service $service, + MetadataUtil $metadata, + UserEntity $user + ) { + $this->service = $service; + $this->metadata = $metadata; + $this->user = $user; + } + public function getActionRead(): stdClass { - return $this->getMetadataService()->getDataForFrontend(); + return $this->service->getDataForFrontend(); } /** @@ -61,10 +72,4 @@ class Metadata extends Base return $this->metadata->get($key, false); } - - private function getMetadataService(): Service - { - /** @var Service */ - return $this->getServiceFactory()->create('Metadata'); - } } diff --git a/application/Espo/Controllers/Settings.php b/application/Espo/Controllers/Settings.php index f5049e0081..7c06274295 100644 --- a/application/Espo/Controllers/Settings.php +++ b/application/Espo/Controllers/Settings.php @@ -34,7 +34,7 @@ use Espo\Core\Exceptions\Error; use Espo\Core\Exceptions\Forbidden; use Espo\Core\Api\Request; use Espo\Core\Utils\Metadata; -use Espo\Services\Settings as Service; +use Espo\Tools\App\SettingsService as Service; use Espo\Entities\User; use stdClass; diff --git a/application/Espo/Tools/App/AppService.php b/application/Espo/Tools/App/AppService.php index 0bcc2090dc..8413b9b496 100644 --- a/application/Espo/Tools/App/AppService.php +++ b/application/Espo/Tools/App/AppService.php @@ -33,7 +33,7 @@ use Espo\Entities\DashboardTemplate; use Espo\Entities\EmailAccount as EmailAccountEntity; use Espo\Entities\InboundEmail as InboundEmailEntity; use Espo\Entities\Settings; -use Espo\Services\Settings as SettingsService; +use Espo\Tools\App\SettingsService as SettingsService; use Espo\Core\Acl; use Espo\Core\Authentication\Logins\Espo; diff --git a/application/Espo/Services/Metadata.php b/application/Espo/Tools/App/MetadataService.php similarity index 98% rename from application/Espo/Services/Metadata.php rename to application/Espo/Tools/App/MetadataService.php index 1a8fba8e2a..2f1031e6e9 100644 --- a/application/Espo/Services/Metadata.php +++ b/application/Espo/Tools/App/MetadataService.php @@ -27,7 +27,7 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -namespace Espo\Services; +namespace Espo\Tools\App; use Espo\Core\Acl; use Espo\Core\Utils\Metadata as MetadataUtil; @@ -36,13 +36,11 @@ use Espo\Entities\User; use stdClass; -class Metadata +class MetadataService { - private $acl; - - private $metadata; - - private $user; + private Acl $acl; + private MetadataUtil $metadata; + private User $user; public function __construct(Acl $acl, MetadataUtil $metadata, User $user) { diff --git a/application/Espo/Services/Settings.php b/application/Espo/Tools/App/SettingsService.php similarity index 99% rename from application/Espo/Services/Settings.php rename to application/Espo/Tools/App/SettingsService.php index ddc341f3ab..bea7cdb48c 100644 --- a/application/Espo/Services/Settings.php +++ b/application/Espo/Tools/App/SettingsService.php @@ -27,7 +27,7 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -namespace Espo\Services; +namespace Espo\Tools\App; use Espo\Core\Authentication\Logins\Espo; use Espo\ORM\Entity; @@ -52,7 +52,7 @@ use Espo\Repositories\Portal as PortalRepository; use stdClass; -class Settings +class SettingsService { private ApplicationState $applicationState; private Config $config; diff --git a/application/Espo/Services/Layout.php b/application/Espo/Tools/Layout/Service.php similarity index 89% rename from application/Espo/Services/Layout.php rename to application/Espo/Tools/Layout/Service.php index 4234ab3c5c..05499ee226 100644 --- a/application/Espo/Services/Layout.php +++ b/application/Espo/Tools/Layout/Service.php @@ -27,66 +27,38 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -namespace Espo\Services; +namespace Espo\Tools\Layout; use Espo\Entities\LayoutRecord; -use Espo\Core\{ - Exceptions\NotFound, - Exceptions\Forbidden, - Exceptions\Error, - Acl, - Acl\Exceptions\NotImplemented, - Utils\Layout as LayoutUtil, - ORM\EntityManager, - Utils\Metadata, - DataManager, - Utils\Json, -}; +use Espo\Core\Acl; +use Espo\Core\Acl\Exceptions\NotImplemented; +use Espo\Core\DataManager; +use Espo\Core\Exceptions\Error; +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\User, - Tools\LayoutManager\LayoutManager, -}; +use Espo\Entities\LayoutSet; +use Espo\Entities\Portal as PortalEntity; +use Espo\Entities\Team as TeamEntity; +use Espo\Entities\User; +use Espo\Tools\LayoutManager\LayoutManager; use stdClass; -class Layout +class Service { - /** - * @var Acl - */ - protected $acl; - - /** - * @var LayoutUtil - */ - protected $layout; - - /** - * @var LayoutManager - */ - protected $layoutManager; - - /** - * @var EntityManager - */ - protected $entityManager; - - /** - * @var Metadata - */ - protected $metadata; - - /** - * @var DataManager - */ - protected $dataManager; - - /** - * @var User - */ - protected $user; + private Acl $acl; + private LayoutUtil $layout; + private LayoutManager $layoutManager; + private EntityManager $entityManager; + private Metadata $metadata; + private DataManager $dataManager; + private User $user; public function __construct( Acl $acl, @@ -169,7 +141,7 @@ class Layout if ($portalId) { $portal = $em - ->getRDBRepository('Portal') + ->getRDBRepositoryByClass(PortalEntity::class) ->select(['layoutSetId']) ->where(['id' => $portalId]) ->findOne(); @@ -183,7 +155,7 @@ class Layout if ($teamId) { $team = $em - ->getRDBRepository('Team') + ->getRDBRepositoryByClass(TeamEntity::class) ->select(['layoutSetId']) ->where(['id' => $teamId]) ->findOne(); @@ -270,9 +242,9 @@ class Layout bool $skipCheck = false ): ?LayoutRecord { - $em = $this->entityManager; + $entityManager = $this->entityManager; - $layoutSet = $em->getEntity('LayoutSet', $setId); + $layoutSet = $entityManager->getEntityById(LayoutSet::ENTITY_TYPE, $setId); if (!$layoutSet) { throw new NotFound("LayoutSet {$setId} not found."); @@ -290,15 +262,13 @@ class Layout throw new NotFound("Layout {$fullName} is no allowed in set."); } - $layout = $em - ->getRDBRepository('LayoutRecord') + return $entityManager + ->getRDBRepositoryByClass(LayoutRecord::class) ->where([ 'layoutSetId' => $setId, 'name' => $fullName, ]) ->findOne(); - - return $layout; } /** @@ -313,7 +283,7 @@ class Layout $layout = $this->getRecordFromSet($scope, $name, $setId); if (!$layout) { - $layout = $this->entityManager->getNewEntity('LayoutRecord'); + $layout = $this->entityManager->getNewEntity(LayoutRecord::ENTITY_TYPE); $layout->set([ 'layoutSetId' => $setId, diff --git a/tests/integration/Espo/Record/FieldValidationTest.php b/tests/integration/Espo/Record/FieldValidationTest.php index 24ef78d328..cfa0aa1ab2 100644 --- a/tests/integration/Espo/Record/FieldValidationTest.php +++ b/tests/integration/Espo/Record/FieldValidationTest.php @@ -36,7 +36,7 @@ use Espo\Core\{ Record\UpdateParams, }; -use Espo\Services\Settings as SettingsService; +use Espo\Tools\App\SettingsService as SettingsService; class FieldValidationTest extends \tests\integration\Core\BaseTestCase { @@ -400,8 +400,7 @@ class FieldValidationTest extends \tests\integration\Core\BaseTestCase public function testSettings() { - /* @var $service SettingsService */ - $service = $this->getContainer()->get('serviceFactory')->create('Settings'); + $service = $this->getContainer()->get('injectableFactory')->create(SettingsService::class); $this->expectException(BadRequest::class);