Skip to content

Commit e4dcf65

Browse files
authored
ENGCOM-3518: Framework Escaper - remove direct Object Manager usage #19310
2 parents 23994fd + 04a7fe2 commit e4dcf65

File tree

4 files changed

+23
-41
lines changed

4 files changed

+23
-41
lines changed

lib/internal/Magento/Framework/Escaper.php

Lines changed: 19 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,20 @@ class Escaper
4646
*/
4747
private $escapeAsUrlAttributes = ['href'];
4848

49+
/**
50+
* @param \Magento\Framework\ZendEscaper|null $escaper
51+
* @param \Psr\Log\LoggerInterface|null $logger
52+
*/
53+
public function __construct(
54+
\Magento\Framework\ZendEscaper $escaper = null,
55+
\Psr\Log\LoggerInterface $logger = null
56+
) {
57+
$this->escaper = $escaper ?? \Magento\Framework\App\ObjectManager::getInstance()
58+
->get(\Magento\Framework\ZendEscaper::class);
59+
$this->logger = $logger ?? \Magento\Framework\App\ObjectManager::getInstance()
60+
->get(\Psr\Log\LoggerInterface::class);
61+
}
62+
4963
/**
5064
* Escape string for HTML context.
5165
*
@@ -84,7 +98,7 @@ function ($errorNumber, $errorString) {
8498
);
8599
} catch (\Exception $e) {
86100
restore_error_handler();
87-
$this->getLogger()->critical($e);
101+
$this->logger->critical($e);
88102
}
89103
restore_error_handler();
90104

@@ -201,7 +215,7 @@ private function escapeAttributeValue($name, $value)
201215
public function escapeHtmlAttr($string, $escapeSingleQuote = true)
202216
{
203217
if ($escapeSingleQuote) {
204-
return $this->getEscaper()->escapeHtmlAttr((string) $string);
218+
return $this->escaper->escapeHtmlAttr((string) $string);
205219
}
206220
return htmlspecialchars((string)$string, ENT_COMPAT, 'UTF-8', false);
207221
}
@@ -226,7 +240,7 @@ public function escapeUrl($string)
226240
*/
227241
public function encodeUrlParam($string)
228242
{
229-
return $this->getEscaper()->escapeUrl($string);
243+
return $this->escaper->escapeUrl($string);
230244
}
231245

232246
/**
@@ -265,7 +279,7 @@ function ($matches) {
265279
*/
266280
public function escapeCss($string)
267281
{
268-
return $this->getEscaper()->escapeCss($string);
282+
return $this->escaper->escapeCss($string);
269283
}
270284

271285
/**
@@ -340,36 +354,6 @@ public function escapeQuote($data, $addSlashes = false)
340354
return htmlspecialchars($data, ENT_QUOTES, null, false);
341355
}
342356

343-
/**
344-
* Get escaper
345-
*
346-
* @return \Magento\Framework\ZendEscaper
347-
* @deprecated 100.2.0
348-
*/
349-
private function getEscaper()
350-
{
351-
if ($this->escaper == null) {
352-
$this->escaper = \Magento\Framework\App\ObjectManager::getInstance()
353-
->get(\Magento\Framework\ZendEscaper::class);
354-
}
355-
return $this->escaper;
356-
}
357-
358-
/**
359-
* Get logger
360-
*
361-
* @return \Psr\Log\LoggerInterface
362-
* @deprecated 100.2.0
363-
*/
364-
private function getLogger()
365-
{
366-
if ($this->logger == null) {
367-
$this->logger = \Magento\Framework\App\ObjectManager::getInstance()
368-
->get(\Psr\Log\LoggerInterface::class);
369-
}
370-
return $this->logger;
371-
}
372-
373357
/**
374358
* Filter prohibited tags.
375359
*
@@ -384,7 +368,7 @@ private function filterProhibitedTags(array $allowedTags): array
384368
);
385369

386370
if (!empty($notAllowedTags)) {
387-
$this->getLogger()->critical(
371+
$this->logger->critical(
388372
'The following tag(s) are not allowed: ' . implode(', ', $notAllowedTags)
389373
);
390374
$allowedTags = array_diff($allowedTags, $this->notAllowedTags);

lib/internal/Magento/Framework/Filter/Test/Unit/StripTagsTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ class StripTagsTest extends \PHPUnit\Framework\TestCase
1212
*/
1313
public function testStripTags()
1414
{
15-
$stripTags = new \Magento\Framework\Filter\StripTags(new \Magento\Framework\Escaper());
15+
$escaper = $this->createMock(\Magento\Framework\Escaper::class);
16+
$stripTags = new \Magento\Framework\Filter\StripTags($escaper);
1617
$this->assertEquals('three', $stripTags->filter('<two>three</two>'));
1718
}
1819
}

lib/internal/Magento/Framework/Test/Unit/EscaperTest.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,9 @@ class EscaperTest extends \PHPUnit\Framework\TestCase
3030

3131
protected function setUp()
3232
{
33-
$this->escaper = new Escaper();
3433
$this->zendEscaper = new \Magento\Framework\ZendEscaper();
3534
$this->loggerMock = $this->getMockForAbstractClass(\Psr\Log\LoggerInterface::class);
36-
$objectManagerHelper = new ObjectManager($this);
37-
$objectManagerHelper->setBackwardCompatibleProperty($this->escaper, 'escaper', $this->zendEscaper);
38-
$objectManagerHelper->setBackwardCompatibleProperty($this->escaper, 'logger', $this->loggerMock);
35+
$this->escaper = new Escaper($this->zendEscaper, $this->loggerMock);
3936
}
4037

4138
/**

lib/internal/Magento/Framework/Test/Unit/UrlTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ protected function getUrlModel($arguments = [])
141141
$modelProperty->setValue($model, $this->urlModifier);
142142

143143
$zendEscaper = new \Magento\Framework\ZendEscaper();
144-
$escaper = new \Magento\Framework\Escaper();
144+
$escaper = $objectManager->getObject(\Magento\Framework\Escaper::class);
145145
$objectManager->setBackwardCompatibleProperty($escaper, 'escaper', $zendEscaper);
146146
$objectManager->setBackwardCompatibleProperty($model, 'escaper', $escaper);
147147

0 commit comments

Comments
 (0)