From 099e0745f59c4c15cff5e5aabbb13274946a10dc Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Thu, 17 Mar 2022 17:18:49 +0200 Subject: [PATCH] type fixes --- .../Core/Select/AccessControl/FilterFactory.php | 7 ++++++- .../Select/AccessControl/FilterResolverFactory.php | 6 ++++-- .../Core/Select/Applier/Appliers/Additional.php | 4 ++-- .../Espo/Core/Select/Applier/Appliers/Select.php | 2 +- application/Espo/Core/Select/Applier/Factory.php | 7 +++++-- .../Espo/Core/Select/Bool/FilterFactory.php | 7 +++++-- .../Core/Select/Order/ItemConverterFactory.php | 5 ++++- .../Core/Select/Order/ItemConverters/EnumType.php | 2 ++ .../Espo/Core/Select/Primary/FilterFactory.php | 6 +++++- application/Espo/Core/Select/SearchParams.php | 3 ++- application/Espo/Core/Select/SelectBuilder.php | 14 +++++++++++--- .../Espo/Core/Select/SelectManagerFactory.php | 2 ++ .../Espo/Core/Select/Text/FilterFactory.php | 2 +- .../Text/FullTextSearchDataComposerFactory.php | 2 +- .../Espo/Core/Select/Where/ConverterFactory.php | 6 +++--- application/Espo/Core/Select/Where/Item.php | 5 ++++- .../Core/Select/Where/ItemConverterFactory.php | 4 ++-- application/Espo/Core/Sms/SenderFactory.php | 2 +- 18 files changed, 61 insertions(+), 25 deletions(-) diff --git a/application/Espo/Core/Select/AccessControl/FilterFactory.php b/application/Espo/Core/Select/AccessControl/FilterFactory.php index 244d194c37..08822c76a4 100644 --- a/application/Espo/Core/Select/AccessControl/FilterFactory.php +++ b/application/Espo/Core/Select/AccessControl/FilterFactory.php @@ -95,7 +95,7 @@ class FilterFactory } /** - * @return class-string + * @return class-string */ private function getClassName(string $entityType, string $name): ?string { @@ -103,6 +103,7 @@ class FilterFactory throw new Error("Empty access control filter name."); } + /** @var ?class-string */ $className = $this->metadata->get( [ 'selectDefs', @@ -119,6 +120,9 @@ class FilterFactory return $this->getDefaultClassName($name); } + /** + * @return class-string + */ private function getDefaultClassName(string $name): ?string { $className = 'Espo\\Core\\Select\\AccessControl\\Filters\\' . ucfirst($name); @@ -127,6 +131,7 @@ class FilterFactory return null; } + /** @var class-string */ return $className; } } diff --git a/application/Espo/Core/Select/AccessControl/FilterResolverFactory.php b/application/Espo/Core/Select/AccessControl/FilterResolverFactory.php index 597f754b2d..1409c0d94c 100644 --- a/application/Espo/Core/Select/AccessControl/FilterResolverFactory.php +++ b/application/Espo/Core/Select/AccessControl/FilterResolverFactory.php @@ -90,20 +90,22 @@ class FilterResolverFactory } /** - * @return class-string + * @return class-string */ private function getClassName(string $entityType): string { + /** @var class-string */ return $this->metadata->get([ 'selectDefs', $entityType, 'accessControlFilterResolverClassName' ]) ?? DefaultFilterResolver::class; } /** - * @return class-string + * @return class-string */ private function getPortalClassName(string $entityType): string { + /** @var class-string */ return $this->metadata->get([ 'selectDefs', $entityType, 'portalAccessControlFilterResolverClassName' ]) ?? DefaultPortalFilterResolver::class; diff --git a/application/Espo/Core/Select/Applier/Appliers/Additional.php b/application/Espo/Core/Select/Applier/Appliers/Additional.php index e739ee6a89..f44c9a289f 100644 --- a/application/Espo/Core/Select/Applier/Appliers/Additional.php +++ b/application/Espo/Core/Select/Applier/Appliers/Additional.php @@ -50,7 +50,7 @@ class Additional } /** - * @param class-string[] $classNameList + * @param class-string[] $classNameList */ public function apply(array $classNameList, QueryBuilder $queryBuilder, SearchParams $searchParams): void { @@ -62,7 +62,7 @@ class Additional } /** - * @param class-string $className + * @param class-string $className */ private function createApplier(string $className): AdditionalApplier { diff --git a/application/Espo/Core/Select/Applier/Appliers/Select.php b/application/Espo/Core/Select/Applier/Appliers/Select.php index 49cb68450d..e368e6fcbe 100644 --- a/application/Espo/Core/Select/Applier/Appliers/Select.php +++ b/application/Espo/Core/Select/Applier/Appliers/Select.php @@ -103,7 +103,7 @@ class Select /** * @param string[] $attributeList - * @return string[] + * @return array */ protected function prepareAttributeList(array $attributeList, SearchParams $searchParams): array { diff --git a/application/Espo/Core/Select/Applier/Factory.php b/application/Espo/Core/Select/Applier/Factory.php index 3da99de020..f1920cb54a 100644 --- a/application/Espo/Core/Select/Applier/Factory.php +++ b/application/Espo/Core/Select/Applier/Factory.php @@ -109,10 +109,13 @@ class Factory } /** - * @return class-string + * @return class-string */ protected function getDefaultClassName(string $type): string { - return 'Espo\\Core\\Select\\Applier\Appliers\\' . ucfirst($type); + /** @var class-string */ + $className = 'Espo\\Core\\Select\\Applier\Appliers\\' . ucfirst($type); + + return $className; } } diff --git a/application/Espo/Core/Select/Bool/FilterFactory.php b/application/Espo/Core/Select/Bool/FilterFactory.php index 5af512b38d..0049b2f537 100644 --- a/application/Espo/Core/Select/Bool/FilterFactory.php +++ b/application/Espo/Core/Select/Bool/FilterFactory.php @@ -82,7 +82,7 @@ class FilterFactory } /** - * @return class-string|null + * @return ?class-string */ protected function getClassName(string $entityType, string $name): ?string { @@ -100,6 +100,7 @@ class FilterFactory ); if ($className) { + /** @var ?class-string */ return $className; } @@ -107,13 +108,14 @@ class FilterFactory } /** - * @return class-string|null + * @return ?class-string */ protected function getDefaultClassName(string $name): ?string { $className1 = $this->metadata->get(['app', 'select', 'boolFilterClassNameMap', $name]); if ($className1) { + /** @var ?class-string */ return $className1; } @@ -123,6 +125,7 @@ class FilterFactory return null; } + /** @var ?class-string */ return $className; } } diff --git a/application/Espo/Core/Select/Order/ItemConverterFactory.php b/application/Espo/Core/Select/Order/ItemConverterFactory.php index 963cff8e92..5e710e722e 100644 --- a/application/Espo/Core/Select/Order/ItemConverterFactory.php +++ b/application/Espo/Core/Select/Order/ItemConverterFactory.php @@ -66,10 +66,11 @@ class ItemConverterFactory } /** - * @return class-string|null + * @return ?class-string */ private function getClassName(string $entityType, string $field): ?string { + /** @var ?class-string */ $className = $this->metadata->get([ 'selectDefs', $entityType, 'orderItemConverterClassNameMap', $field ]); @@ -86,6 +87,7 @@ class ItemConverterFactory return null; } + /** @var ?class-string */ $className = $this->metadata->get([ 'app', 'select', 'orderItemConverterClassNameMap', $type ]); @@ -97,6 +99,7 @@ class ItemConverterFactory $className = 'Espo\\Core\\Select\\Order\\ItemConverters\\' . ucfirst($type) . 'Type'; if (class_exists($className)) { + /** @var class-string */ return $className; } diff --git a/application/Espo/Core/Select/Order/ItemConverters/EnumType.php b/application/Espo/Core/Select/Order/ItemConverters/EnumType.php index f3eabc9456..48744801f9 100644 --- a/application/Espo/Core/Select/Order/ItemConverters/EnumType.php +++ b/application/Espo/Core/Select/Order/ItemConverters/EnumType.php @@ -56,9 +56,11 @@ class EnumType implements ItemConverter public function convert(Item $item): OrderList { + /** @var string */ $orderBy = $item->getOrderBy(); $order = $item->getOrder() ?? SearchParams::ORDER_ASC; + /** @var ?string[] */ $list = $this->metadata->get([ 'entityDefs', $this->entityType, 'fields', $orderBy, 'options' ]); diff --git a/application/Espo/Core/Select/Primary/FilterFactory.php b/application/Espo/Core/Select/Primary/FilterFactory.php index 8940eb8919..8deeb7d636 100644 --- a/application/Espo/Core/Select/Primary/FilterFactory.php +++ b/application/Espo/Core/Select/Primary/FilterFactory.php @@ -80,7 +80,7 @@ class FilterFactory } /** - * @return class-string|null + * @return ?class-string */ protected function getClassName(string $entityType, string $name): ?string { @@ -104,6 +104,9 @@ class FilterFactory return $this->getDefaultClassName($name); } + /** + * @return ?class-string + */ protected function getDefaultClassName(string $name): ?string { $className = 'Espo\\Core\\Select\\Primary\\Filters\\' . ucfirst($name); @@ -112,6 +115,7 @@ class FilterFactory return null; } + /** @var class-string */ return $className; } } diff --git a/application/Espo/Core/Select/SearchParams.php b/application/Espo/Core/Select/SearchParams.php index 4acacac400..c4688ce9b4 100644 --- a/application/Espo/Core/Select/SearchParams.php +++ b/application/Espo/Core/Select/SearchParams.php @@ -30,6 +30,7 @@ namespace Espo\Core\Select; use Espo\Core\Select\Where\Item as WhereItem; +use Espo\Core\Utils\Json; use InvalidArgumentException; use stdClass; @@ -281,7 +282,7 @@ class SearchParams } if ($params instanceof stdClass) { - $params = json_decode(json_encode($params), true); + $params = json_decode(Json::encode($params), true); } $object = new self(); diff --git a/application/Espo/Core/Select/SelectBuilder.php b/application/Espo/Core/Select/SelectBuilder.php index b37217a276..aecaecc327 100644 --- a/application/Espo/Core/Select/SelectBuilder.php +++ b/application/Espo/Core/Select/SelectBuilder.php @@ -89,7 +89,7 @@ class SelectBuilder private bool $applyComplexExpressionsForbidden = false; /** - * @var class-string[] + * @var class-string<\Espo\Core\Select\Applier\AdditionalApplier>[] */ private array $additionalApplierClassNameList = []; @@ -333,9 +333,8 @@ class SelectBuilder /** * Apply a list of additional applier class names. - * Classes must implement `Applier\AdditionalApplier` interface. * - * @param string[] $additionalApplierClassNameList + * @param class-string<\Espo\Core\Select\Applier\AdditionalApplier>[] $additionalApplierClassNameList */ public function withAdditionalApplierClassNameList(array $additionalApplierClassNameList): self { @@ -507,6 +506,7 @@ class SelectBuilder private function createWhereApplier(): WhereApplier { + /** @var WhereApplier */ return $this->applierFactory->create( $this->entityType, $this->user, @@ -516,6 +516,7 @@ class SelectBuilder private function createSelectApplier(): SelectApplier { + /** @var SelectApplier */ return $this->applierFactory->create( $this->entityType, $this->user, @@ -525,6 +526,7 @@ class SelectBuilder private function createOrderApplier(): OrderApplier { + /** @var OrderApplier */ return $this->applierFactory->create( $this->entityType, $this->user, @@ -534,6 +536,7 @@ class SelectBuilder private function createLimitApplier(): LimitApplier { + /** @var LimitApplier */ return $this->applierFactory->create( $this->entityType, $this->user, @@ -543,6 +546,7 @@ class SelectBuilder private function createAccessControlFilterApplier(): AccessControlFilterApplier { + /** @var AccessControlFilterApplier */ return $this->applierFactory->create( $this->entityType, $this->user, @@ -552,6 +556,7 @@ class SelectBuilder private function createTextFilterApplier(): TextFilterApplier { + /** @var TextFilterApplier */ return $this->applierFactory->create( $this->entityType, $this->user, @@ -561,6 +566,7 @@ class SelectBuilder private function createPrimaryFilterApplier(): PrimaryFilterApplier { + /** @var PrimaryFilterApplier */ return $this->applierFactory->create( $this->entityType, $this->user, @@ -570,6 +576,7 @@ class SelectBuilder private function createBoolFilterListApplier(): BoolFilterListApplier { + /** @var BoolFilterListApplier */ return $this->applierFactory->create( $this->entityType, $this->user, @@ -579,6 +586,7 @@ class SelectBuilder private function createAdditionalApplier(): AdditionalApplier { + /** @var AdditionalApplier */ return $this->applierFactory->create( $this->entityType, $this->user, diff --git a/application/Espo/Core/Select/SelectManagerFactory.php b/application/Espo/Core/Select/SelectManagerFactory.php index cfb7d58007..bd00fc9958 100644 --- a/application/Espo/Core/Select/SelectManagerFactory.php +++ b/application/Espo/Core/Select/SelectManagerFactory.php @@ -84,6 +84,8 @@ class SelectManagerFactory $className = $this->defaultClassName; } + /** @var class-string $className */ + if ($user) { $acl = $this->aclManagerProvider->get($user)->createUserAcl($user); } diff --git a/application/Espo/Core/Select/Text/FilterFactory.php b/application/Espo/Core/Select/Text/FilterFactory.php index 3d4d8cc3a0..7e179872d4 100644 --- a/application/Espo/Core/Select/Text/FilterFactory.php +++ b/application/Espo/Core/Select/Text/FilterFactory.php @@ -51,7 +51,7 @@ class FilterFactory public function create(string $entityType, User $user): Filter { - /** @var class-string */ + /** @var class-string */ $className = $this->metadata->get(['selectDefs', $entityType, 'textFilterClassName']) ?? DefaultFilter::class; diff --git a/application/Espo/Core/Select/Text/FullTextSearchDataComposerFactory.php b/application/Espo/Core/Select/Text/FullTextSearchDataComposerFactory.php index 5aaeddc500..150db8b23b 100644 --- a/application/Espo/Core/Select/Text/FullTextSearchDataComposerFactory.php +++ b/application/Espo/Core/Select/Text/FullTextSearchDataComposerFactory.php @@ -56,7 +56,7 @@ class FullTextSearchDataComposerFactory } /** - * @return class-string + * @return class-string */ private function getClassName(string $entityType): string { diff --git a/application/Espo/Core/Select/Where/ConverterFactory.php b/application/Espo/Core/Select/Where/ConverterFactory.php index ff09285f9c..75e28c21cc 100644 --- a/application/Espo/Core/Select/Where/ConverterFactory.php +++ b/application/Espo/Core/Select/Where/ConverterFactory.php @@ -131,7 +131,7 @@ class ConverterFactory } /** - * @return class-string + * @return class-string */ private function getConverterClassName(string $entityType): string { @@ -145,7 +145,7 @@ class ConverterFactory } /** - * @return class-string + * @return class-string */ private function getItemConverterClassName(string $entityType): string { @@ -159,7 +159,7 @@ class ConverterFactory } /** - * @return class-string + * @return class-string */ private function getDateTimeItemTransformerClassName(string $entityType): string { diff --git a/application/Espo/Core/Select/Where/Item.php b/application/Espo/Core/Select/Where/Item.php index cbe05d226b..59e2a3352d 100644 --- a/application/Espo/Core/Select/Where/Item.php +++ b/application/Espo/Core/Select/Where/Item.php @@ -142,8 +142,11 @@ class Item */ public function getRaw(): array { + /** @var string */ + $type = $this->type; + $raw = [ - 'type' => $this->type, + 'type' => $type, 'value' => $this->value, ]; diff --git a/application/Espo/Core/Select/Where/ItemConverterFactory.php b/application/Espo/Core/Select/Where/ItemConverterFactory.php index 0a42dfedcd..2636207f73 100644 --- a/application/Espo/Core/Select/Where/ItemConverterFactory.php +++ b/application/Espo/Core/Select/Where/ItemConverterFactory.php @@ -82,7 +82,7 @@ class ItemConverterFactory } /** - * @return class-string|null + * @return ?class-string */ protected function getClassNameForType(string $type): ?string { @@ -121,7 +121,7 @@ class ItemConverterFactory } /** - * @return class-string|null + * @return ?class-string */ protected function getClassName(string $entityType, string $attribute, string $type): ?string { diff --git a/application/Espo/Core/Sms/SenderFactory.php b/application/Espo/Core/Sms/SenderFactory.php index 0638094054..bee2047fa1 100644 --- a/application/Espo/Core/Sms/SenderFactory.php +++ b/application/Espo/Core/Sms/SenderFactory.php @@ -63,7 +63,7 @@ class SenderFactory implements Factory throw new RuntimeException("No `smsProvider` in config."); } - /** @var ?class-string */ + /** @var ?class-string */ $className = $this->metadata->get(['app', 'smsProviders', $provider, 'senderClassName']); if (!$className) {