Skip to content

Commit 66c8ae7

Browse files
[Magento Community Engineering] Community Contributions - 2.4-develop-prs
- merged with '2.4-develop-express-lane-prs' branch
2 parents 5916e92 + e133bb4 commit 66c8ae7

File tree

6 files changed

+49
-36
lines changed

6 files changed

+49
-36
lines changed

app/code/Magento/Catalog/Model/Product/Attribute/Backend/GroupPrice/AbstractGroupPrice.php

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,17 +97,16 @@ protected function _getWebsiteCurrencyRates()
9797
);
9898
foreach ($this->_storeManager->getWebsites() as $website) {
9999
/* @var $website \Magento\Store\Model\Website */
100-
if ($website->getBaseCurrencyCode() != $baseCurrency) {
100+
$websiteBaseCurrency = $website->getBaseCurrencyCode();
101+
if ($websiteBaseCurrency !== $baseCurrency) {
101102
$rate = $this->_currencyFactory->create()->load(
102103
$baseCurrency
103-
)->getRate(
104-
$website->getBaseCurrencyCode()
105-
);
104+
)->getRate($websiteBaseCurrency);
106105
if (!$rate) {
107106
$rate = 1;
108107
}
109108
$this->_rates[$website->getId()] = [
110-
'code' => $website->getBaseCurrencyCode(),
109+
'code' => $websiteBaseCurrency,
111110
'rate' => $rate,
112111
];
113112
} else {
@@ -187,6 +186,7 @@ public function validate($object)
187186
}
188187
$compare = implode(
189188
'-',
189+
// phpcs:ignore Magento2.Performance.ForeachArrayMerge
190190
array_merge(
191191
[$priceRow['website_id'], $priceRow['cust_group']],
192192
$this->_getAdditionalUniqueFields($priceRow)
@@ -210,6 +210,7 @@ public function validate($object)
210210
if ($price['website_id'] == 0) {
211211
$compare = implode(
212212
'-',
213+
// phpcs:ignore Magento2.Performance.ForeachArrayMerge
213214
array_merge(
214215
[$price['website_id'], $price['cust_group']],
215216
$this->_getAdditionalUniqueFields($price)
@@ -234,6 +235,7 @@ public function validate($object)
234235

235236
$globalCompare = implode(
236237
'-',
238+
// phpcs:ignore Magento2.Performance.ForeachArrayMerge
237239
array_merge([0, $priceRow['cust_group']], $this->_getAdditionalUniqueFields($priceRow))
238240
);
239241
$websiteCurrency = $rates[$priceRow['website_id']]['code'];
@@ -279,6 +281,7 @@ public function preparePriceData(array $priceData, $productTypeId, $websiteId)
279281
if (!array_filter($v)) {
280282
continue;
281283
}
284+
// phpcs:ignore Magento2.Performance.ForeachArrayMerge
282285
$key = implode('-', array_merge([$v['cust_group']], $this->_getAdditionalUniqueFields($v)));
283286
if ($v['website_id'] == $websiteId) {
284287
$data[$key] = $v;

app/code/Magento/Catalog/Model/ResourceModel/Eav/Attribute.php

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,18 @@ class Attribute extends \Magento\Eav\Model\Entity\Attribute implements
3838

3939
const KEY_IS_GLOBAL = 'is_global';
4040

41+
private const ALLOWED_INPUT_TYPES = [
42+
'boolean' => true,
43+
'date' => true,
44+
'datetime' => true,
45+
'multiselect' => true,
46+
'price' => true,
47+
'select' => true,
48+
'text' => true,
49+
'textarea' => true,
50+
'weight' => true,
51+
];
52+
4153
/**
4254
* @var LockValidatorInterface
4355
*/
@@ -403,18 +415,7 @@ public function getSourceModel()
403415
*/
404416
public function isAllowedForRuleCondition()
405417
{
406-
$allowedInputTypes = [
407-
'boolean',
408-
'date',
409-
'datetime',
410-
'multiselect',
411-
'price',
412-
'select',
413-
'text',
414-
'textarea',
415-
'weight',
416-
];
417-
return $this->getIsVisible() && in_array($this->getFrontendInput(), $allowedInputTypes);
418+
return $this->getIsVisible() && isset(self::ALLOWED_INPUT_TYPES[$this->getFrontendInput()]);
418419
}
419420

420421
/**

lib/internal/Magento/Framework/App/ObjectManager/ConfigLoader/Compiled.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
<?php
22
/**
3-
*
43
* Copyright © Magento, Inc. All rights reserved.
54
* See COPYING.txt for license details.
65
*/
76
namespace Magento\Framework\App\ObjectManager\ConfigLoader;
87

98
use Magento\Framework\App\Filesystem\DirectoryList;
109
use Magento\Framework\ObjectManager\ConfigLoaderInterface;
11-
use Magento\Framework\Serialize\SerializerInterface;
12-
use Magento\Framework\Serialize\Serializer\Serialize;
1310

11+
/**
12+
* Load configuration files
13+
*/
1414
class Compiled implements ConfigLoaderInterface
1515
{
1616
/**
@@ -21,7 +21,7 @@ class Compiled implements ConfigLoaderInterface
2121
private $configCache = [];
2222

2323
/**
24-
* {inheritdoc}
24+
* @inheritdoc
2525
*/
2626
public function load($area)
2727
{

lib/internal/Magento/Framework/DB/Select/SelectRenderer.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,15 @@
88
use Magento\Framework\DB\Select;
99

1010
/**
11-
* Class SelectRenderer
11+
* Phrase renderer interface
1212
*/
1313
class SelectRenderer implements RendererInterface
1414
{
15+
private const MANDATORY_SELECT_PARTS = [
16+
Select::COLUMNS => true,
17+
Select::FROM => true
18+
];
19+
1520
/**
1621
* @var RendererInterface[]
1722
*/
@@ -67,7 +72,8 @@ public function render(Select $select, $sql = '')
6772
{
6873
$sql = Select::SQL_SELECT;
6974
foreach ($this->renderers as $renderer) {
70-
if (in_array($renderer['part'], [Select::COLUMNS, Select::FROM]) || $select->getPart($renderer['part'])) {
75+
$part = $renderer['part'];
76+
if (isset(self::MANDATORY_SELECT_PARTS[$part]) || $select->getPart($part)) {
7177
$sql = $renderer['renderer']->render($select, $sql);
7278
}
7379
}

lib/internal/Magento/Framework/Module/Dir.php

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
<?php
22
/**
3-
* Encapsulates directories structure of a Magento module
4-
*
53
* Copyright © Magento, Inc. All rights reserved.
64
* See COPYING.txt for license details.
75
*/
@@ -10,6 +8,9 @@
108
use Magento\Framework\Component\ComponentRegistrar;
119
use Magento\Framework\Component\ComponentRegistrarInterface;
1210

11+
/**
12+
* Encapsulates directories structure of a Magento module
13+
*/
1314
class Dir
1415
{
1516
/**#@+
@@ -22,6 +23,14 @@ class Dir
2223
const MODULE_SETUP_DIR = 'Setup';
2324
/**#@-*/
2425

26+
private const ALLOWED_DIR_TYPES = [
27+
self::MODULE_ETC_DIR => true,
28+
self::MODULE_I18N_DIR => true,
29+
self::MODULE_VIEW_DIR => true,
30+
self::MODULE_CONTROLLER_DIR => true,
31+
self::MODULE_SETUP_DIR => true
32+
];
33+
2534
/**#@-*/
2635
private $componentRegistrar;
2736

@@ -52,13 +61,7 @@ public function getDir($moduleName, $type = '')
5261
}
5362

5463
if ($type) {
55-
if (!in_array($type, [
56-
self::MODULE_ETC_DIR,
57-
self::MODULE_I18N_DIR,
58-
self::MODULE_VIEW_DIR,
59-
self::MODULE_CONTROLLER_DIR,
60-
self::MODULE_SETUP_DIR
61-
])) {
64+
if (!isset(self::ALLOWED_DIR_TYPES[$type])) {
6265
throw new \InvalidArgumentException("Directory type '{$type}' is not recognized.");
6366
}
6467
$path .= '/' . $type;

lib/internal/Magento/Framework/Phrase/Renderer/Translate.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
<?php
22
/**
3-
* Translate Phrase renderer
4-
*
53
* Copyright © Magento, Inc. All rights reserved.
64
* See COPYING.txt for license details.
75
*/
@@ -11,6 +9,9 @@
119
use Magento\Framework\TranslateInterface;
1210
use Psr\Log\LoggerInterface;
1311

12+
/**
13+
* Translate Phrase renderer
14+
*/
1415
class Translate implements RendererInterface
1516
{
1617
/**
@@ -50,8 +51,7 @@ public function render(array $source, array $arguments)
5051
{
5152
$text = end($source);
5253
/* If phrase contains escaped quotes then use translation for phrase with non-escaped quote */
53-
$text = str_replace('\"', '"', $text);
54-
$text = str_replace("\\'", "'", $text);
54+
$text = strtr($text, ['\"' => '"', "\\'" => "'"]);
5555

5656
try {
5757
$data = $this->translator->getData();

0 commit comments

Comments
 (0)