Skip to content

Commit 31c4ce6

Browse files
authored
ENGCOM-6973: Cleanup ObjectManager usage - Magento_Elasticsearch #26964
2 parents b5abb3e + db8db46 commit 31c4ce6

File tree

20 files changed

+247
-274
lines changed

20 files changed

+247
-274
lines changed

app/code/Magento/Elasticsearch/Elasticsearch5/Model/Adapter/BatchDataMapper/CategoryFieldsProvider.php

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
* Copyright © Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6+
declare(strict_types=1);
67

78
namespace Magento\Elasticsearch\Elasticsearch5\Model\Adapter\BatchDataMapper;
89

9-
use Magento\Elasticsearch\Model\ResourceModel\Index;
1010
use Magento\AdvancedSearch\Model\Adapter\DataMapper\AdditionalFieldsProviderInterface;
1111
use Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\AttributeProvider;
12-
use Magento\Framework\App\ObjectManager;
1312
use Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\ResolverInterface;
13+
use Magento\Elasticsearch\Model\ResourceModel\Index;
1414

1515
/**
1616
* Provide data mapping for categories fields
@@ -34,19 +34,17 @@ class CategoryFieldsProvider implements AdditionalFieldsProviderInterface
3434

3535
/**
3636
* @param Index $resourceIndex
37-
* @param AttributeProvider|null $attributeAdapterProvider
38-
* @param ResolverInterface|null $fieldNameResolver
37+
* @param AttributeProvider $attributeAdapterProvider
38+
* @param ResolverInterface $fieldNameResolver
3939
*/
4040
public function __construct(
4141
Index $resourceIndex,
42-
AttributeProvider $attributeAdapterProvider = null,
43-
ResolverInterface $fieldNameResolver = null
42+
AttributeProvider $attributeAdapterProvider,
43+
ResolverInterface $fieldNameResolver
4444
) {
4545
$this->resourceIndex = $resourceIndex;
46-
$this->attributeAdapterProvider = $attributeAdapterProvider ?: ObjectManager::getInstance()
47-
->get(AttributeProvider::class);
48-
$this->fieldNameResolver = $fieldNameResolver ?: ObjectManager::getInstance()
49-
->get(ResolverInterface::class);
46+
$this->attributeAdapterProvider = $attributeAdapterProvider;
47+
$this->fieldNameResolver = $fieldNameResolver;
5048
}
5149

5250
/**

app/code/Magento/Elasticsearch/Elasticsearch5/Model/Adapter/DataMapper/ProductDataMapper.php

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,16 @@
77
namespace Magento\Elasticsearch\Elasticsearch5\Model\Adapter\DataMapper;
88

99
use Magento\Catalog\Model\ResourceModel\Eav\Attribute;
10-
use Magento\Elasticsearch\Model\Adapter\Container\Attribute as AttributeContainer;
11-
use Magento\Elasticsearch\Model\Adapter\Document\Builder;
12-
use Magento\Store\Model\StoreManagerInterface;
1310
use Magento\Customer\Api\Data\GroupInterface;
14-
use Magento\Elasticsearch\Model\ResourceModel\Index;
15-
use Magento\Elasticsearch\Model\Adapter\FieldMapperInterface;
11+
use Magento\Elasticsearch\Model\Adapter\Container\Attribute as AttributeContainer;
1612
use Magento\Elasticsearch\Model\Adapter\DataMapperInterface;
17-
use Magento\Elasticsearch\Model\Adapter\FieldType\Date as DateFieldType;
13+
use Magento\Elasticsearch\Model\Adapter\Document\Builder;
1814
use Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\AttributeProvider;
19-
use Magento\Framework\App\ObjectManager;
2015
use Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\ResolverInterface;
16+
use Magento\Elasticsearch\Model\Adapter\FieldMapperInterface;
17+
use Magento\Elasticsearch\Model\Adapter\FieldType\Date as DateFieldType;
18+
use Magento\Elasticsearch\Model\ResourceModel\Index;
19+
use Magento\Store\Model\StoreManagerInterface;
2120

2221
/**
2322
* Don't use this product data mapper class.
@@ -103,8 +102,8 @@ class ProductDataMapper implements DataMapperInterface
103102
* @param FieldMapperInterface $fieldMapper
104103
* @param StoreManagerInterface $storeManager
105104
* @param DateFieldType $dateFieldType
106-
* @param AttributeProvider|null $attributeAdapterProvider
107-
* @param ResolverInterface|null $fieldNameResolver
105+
* @param AttributeProvider $attributeAdapterProvider
106+
* @param ResolverInterface $fieldNameResolver
108107
*/
109108
public function __construct(
110109
Builder $builder,
@@ -113,19 +112,17 @@ public function __construct(
113112
FieldMapperInterface $fieldMapper,
114113
StoreManagerInterface $storeManager,
115114
DateFieldType $dateFieldType,
116-
AttributeProvider $attributeAdapterProvider = null,
117-
ResolverInterface $fieldNameResolver = null
115+
AttributeProvider $attributeAdapterProvider,
116+
ResolverInterface $fieldNameResolver
118117
) {
119118
$this->builder = $builder;
120119
$this->attributeContainer = $attributeContainer;
121120
$this->resourceIndex = $resourceIndex;
122121
$this->fieldMapper = $fieldMapper;
123122
$this->storeManager = $storeManager;
124123
$this->dateFieldType = $dateFieldType;
125-
$this->attributeAdapterProvider = $attributeAdapterProvider ?: ObjectManager::getInstance()
126-
->get(AttributeProvider::class);
127-
$this->fieldNameResolver = $fieldNameResolver ?: ObjectManager::getInstance()
128-
->get(ResolverInterface::class);
124+
$this->attributeAdapterProvider = $attributeAdapterProvider;
125+
$this->fieldNameResolver = $fieldNameResolver;
129126

130127
$this->mediaGalleryRoles = [
131128
self::MEDIA_ROLE_IMAGE,

app/code/Magento/Elasticsearch/Elasticsearch5/Model/Adapter/FieldMapper/ProductFieldMapper.php

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,23 @@
33
* Copyright © Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6+
declare(strict_types=1);
67

78
namespace Magento\Elasticsearch\Elasticsearch5\Model\Adapter\FieldMapper;
89

10+
use Magento\Customer\Model\Session as CustomerSession;
911
use Magento\Eav\Model\Config;
12+
use Magento\Elasticsearch\Elasticsearch5\Model\Adapter\FieldType;
1013
use Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\AttributeProvider;
14+
use Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\ResolverInterface;
1115
use Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProviderInterface;
1216
use Magento\Elasticsearch\Model\Adapter\FieldMapperInterface;
13-
use Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\ResolverInterface;
14-
use Magento\Framework\App\ObjectManager;
15-
use Magento\Elasticsearch\Elasticsearch5\Model\Adapter\FieldType;
1617
use Magento\Framework\Registry;
1718
use Magento\Store\Model\StoreManagerInterface as StoreManager;
18-
use \Magento\Customer\Model\Session as CustomerSession;
1919

2020
/**
21-
* Class ProductFieldMapper
21+
* Elasticsearch5 Product Field Mapper Adapter
22+
* @SuppressWarnings(PHPMD.CookieAndSessionMisuse)
2223
*/
2324
class ProductFieldMapper implements FieldMapperInterface
2425
{
@@ -73,31 +74,28 @@ class ProductFieldMapper implements FieldMapperInterface
7374
* @param CustomerSession $customerSession
7475
* @param StoreManager $storeManager
7576
* @param Registry $coreRegistry
76-
* @param ResolverInterface|null $fieldNameResolver
77-
* @param AttributeProvider|null $attributeAdapterProvider
78-
* @param FieldProviderInterface|null $fieldProvider
77+
* @param ResolverInterface $fieldNameResolver
78+
* @param AttributeProvider $attributeAdapterProvider
79+
* @param FieldProviderInterface $fieldProvider
7980
*/
8081
public function __construct(
8182
Config $eavConfig,
8283
FieldType $fieldType,
8384
CustomerSession $customerSession,
8485
StoreManager $storeManager,
8586
Registry $coreRegistry,
86-
ResolverInterface $fieldNameResolver = null,
87-
AttributeProvider $attributeAdapterProvider = null,
88-
FieldProviderInterface $fieldProvider = null
87+
ResolverInterface $fieldNameResolver,
88+
AttributeProvider $attributeAdapterProvider,
89+
FieldProviderInterface $fieldProvider
8990
) {
9091
$this->eavConfig = $eavConfig;
9192
$this->fieldType = $fieldType;
9293
$this->customerSession = $customerSession;
9394
$this->storeManager = $storeManager;
9495
$this->coreRegistry = $coreRegistry;
95-
$this->fieldNameResolver = $fieldNameResolver ?: ObjectManager::getInstance()
96-
->get(ResolverInterface::class);
97-
$this->attributeAdapterProvider = $attributeAdapterProvider ?: ObjectManager::getInstance()
98-
->get(AttributeProvider::class);
99-
$this->fieldProvider = $fieldProvider ?: ObjectManager::getInstance()
100-
->get(FieldProviderInterface::class);
96+
$this->fieldNameResolver = $fieldNameResolver;
97+
$this->attributeAdapterProvider = $attributeAdapterProvider;
98+
$this->fieldProvider = $fieldProvider;
10199
}
102100

103101
/**

app/code/Magento/Elasticsearch/Elasticsearch5/SearchAdapter/Adapter.php

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
*/
66
namespace Magento\Elasticsearch\Elasticsearch5\SearchAdapter;
77

8-
use Magento\Framework\App\ObjectManager;
8+
use Magento\Elasticsearch\SearchAdapter\Aggregation\Builder as AggregationBuilder;
9+
use Magento\Elasticsearch\SearchAdapter\ConnectionManager;
10+
use Magento\Elasticsearch\SearchAdapter\QueryContainerFactory;
11+
use Magento\Elasticsearch\SearchAdapter\ResponseFactory;
912
use Magento\Framework\Search\AdapterInterface;
1013
use Magento\Framework\Search\RequestInterface;
1114
use Magento\Framework\Search\Response\QueryResponse;
12-
use Magento\Elasticsearch\SearchAdapter\Aggregation\Builder as AggregationBuilder;
13-
use Magento\Elasticsearch\SearchAdapter\ConnectionManager;
14-
use \Magento\Elasticsearch\SearchAdapter\ResponseFactory;
1515
use Psr\Log\LoggerInterface;
1616

1717
/**
@@ -44,7 +44,7 @@ class Adapter implements AdapterInterface
4444
protected $aggregationBuilder;
4545

4646
/**
47-
* @var \Magento\Elasticsearch\SearchAdapter\QueryContainerFactory
47+
* @var QueryContainerFactory
4848
*/
4949
private $queryContainerFactory;
5050

@@ -54,19 +54,15 @@ class Adapter implements AdapterInterface
5454
* @var array
5555
*/
5656
private static $emptyRawResponse = [
57-
"hits" =>
58-
[
59-
"hits" => []
60-
],
61-
"aggregations" =>
62-
[
63-
"price_bucket" => [],
64-
"category_bucket" =>
65-
[
66-
"buckets" => []
67-
68-
]
57+
'hits' => [
58+
'hits' => []
59+
],
60+
'aggregations' => [
61+
'price_bucket' => [],
62+
'category_bucket' => [
63+
'buckets' => []
6964
]
65+
]
7066
];
7167

7268
/**
@@ -79,24 +75,23 @@ class Adapter implements AdapterInterface
7975
* @param Mapper $mapper
8076
* @param ResponseFactory $responseFactory
8177
* @param AggregationBuilder $aggregationBuilder
82-
* @param \Magento\Elasticsearch\SearchAdapter\QueryContainerFactory $queryContainerFactory
78+
* @param QueryContainerFactory $queryContainerFactory
8379
* @param LoggerInterface $logger
8480
*/
8581
public function __construct(
8682
ConnectionManager $connectionManager,
8783
Mapper $mapper,
8884
ResponseFactory $responseFactory,
8985
AggregationBuilder $aggregationBuilder,
90-
\Magento\Elasticsearch\SearchAdapter\QueryContainerFactory $queryContainerFactory,
91-
LoggerInterface $logger = null
86+
QueryContainerFactory $queryContainerFactory,
87+
LoggerInterface $logger
9288
) {
9389
$this->connectionManager = $connectionManager;
9490
$this->mapper = $mapper;
9591
$this->responseFactory = $responseFactory;
9692
$this->aggregationBuilder = $aggregationBuilder;
9793
$this->queryContainerFactory = $queryContainerFactory;
98-
$this->logger = $logger ?: ObjectManager::getInstance()
99-
->get(LoggerInterface::class);
94+
$this->logger = $logger;
10095
}
10196

10297
/**

app/code/Magento/Elasticsearch/Elasticsearch5/SearchAdapter/Query/Builder.php

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -56,17 +56,20 @@ class Builder
5656
* @param SearchIndexNameResolver $searchIndexNameResolver
5757
* @param AggregationBuilder $aggregationBuilder
5858
* @param ScopeResolverInterface $scopeResolver
59+
* @param Sort|null $sortBuilder
5960
*/
6061
public function __construct(
6162
Config $clientConfig,
6263
SearchIndexNameResolver $searchIndexNameResolver,
6364
AggregationBuilder $aggregationBuilder,
64-
ScopeResolverInterface $scopeResolver
65+
ScopeResolverInterface $scopeResolver,
66+
?Sort $sortBuilder = null
6567
) {
6668
$this->clientConfig = $clientConfig;
6769
$this->searchIndexNameResolver = $searchIndexNameResolver;
6870
$this->aggregationBuilder = $aggregationBuilder;
6971
$this->scopeResolver = $scopeResolver;
72+
$this->sortBuilder = $sortBuilder ?: ObjectManager::getInstance()->get(Sort::class);
7073
}
7174

7275
/**
@@ -88,7 +91,7 @@ public function initQuery(RequestInterface $request)
8891
'from' => $request->getFrom(),
8992
'size' => $request->getSize(),
9093
'stored_fields' => ['_id', '_score'],
91-
'sort' => $this->getSortBuilder()->getSort($request),
94+
'sort' => $this->sortBuilder->getSort($request),
9295
'query' => [],
9396
],
9497
];
@@ -109,17 +112,4 @@ public function initAggregations(
109112
) {
110113
return $this->aggregationBuilder->build($request, $searchQuery);
111114
}
112-
113-
/**
114-
* Get sort builder instance.
115-
*
116-
* @return Sort
117-
*/
118-
private function getSortBuilder()
119-
{
120-
if (null === $this->sortBuilder) {
121-
$this->sortBuilder = ObjectManager::getInstance()->get(Sort::class);
122-
}
123-
return $this->sortBuilder;
124-
}
125115
}

app/code/Magento/Elasticsearch/Model/Adapter/BatchDataMapper/CategoryFieldsProvider.php

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
* Copyright © Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6+
declare(strict_types=1);
67

78
namespace Magento\Elasticsearch\Model\Adapter\BatchDataMapper;
89

9-
use Magento\Elasticsearch\Model\ResourceModel\Index;
1010
use Magento\AdvancedSearch\Model\Adapter\DataMapper\AdditionalFieldsProviderInterface;
1111
use Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\AttributeProvider;
12-
use Magento\Framework\App\ObjectManager;
1312
use Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\ResolverInterface;
13+
use Magento\Elasticsearch\Model\ResourceModel\Index;
1414

1515
/**
1616
* Provide data mapping for categories fields
@@ -34,19 +34,17 @@ class CategoryFieldsProvider implements AdditionalFieldsProviderInterface
3434

3535
/**
3636
* @param Index $resourceIndex
37-
* @param AttributeProvider|null $attributeAdapterProvider
38-
* @param ResolverInterface|null $fieldNameResolver
37+
* @param AttributeProvider $attributeAdapterProvider
38+
* @param ResolverInterface $fieldNameResolver
3939
*/
4040
public function __construct(
4141
Index $resourceIndex,
42-
AttributeProvider $attributeAdapterProvider = null,
43-
ResolverInterface $fieldNameResolver = null
42+
AttributeProvider $attributeAdapterProvider,
43+
ResolverInterface $fieldNameResolver
4444
) {
4545
$this->resourceIndex = $resourceIndex;
46-
$this->attributeAdapterProvider = $attributeAdapterProvider ?: ObjectManager::getInstance()
47-
->get(AttributeProvider::class);
48-
$this->fieldNameResolver = $fieldNameResolver ?: ObjectManager::getInstance()
49-
->get(ResolverInterface::class);
46+
$this->attributeAdapterProvider = $attributeAdapterProvider;
47+
$this->fieldNameResolver = $fieldNameResolver;
5048
}
5149

5250
/**

0 commit comments

Comments
 (0)