Skip to content

Commit 96ca4d7

Browse files
author
Maciej Sławik
committed
Framework Escaper - remove direct Object Manager usage
1 parent 5498231 commit 96ca4d7

File tree

4 files changed

+24
-41
lines changed

4 files changed

+24
-41
lines changed

lib/internal/Magento/Framework/Escaper.php

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

49+
/**
50+
* Escaper constructor.
51+
* @param \Magento\Framework\ZendEscaper|null $escaper
52+
* @param \Psr\Log\LoggerInterface|null $logger
53+
*/
54+
public function __construct(
55+
\Magento\Framework\ZendEscaper $escaper = null,
56+
\Psr\Log\LoggerInterface $logger = null
57+
) {
58+
$this->escaper = $escaper ?? \Magento\Framework\App\ObjectManager::getInstance()
59+
->get(\Magento\Framework\ZendEscaper::class);
60+
$this->logger = $logger ?? \Magento\Framework\App\ObjectManager::getInstance()
61+
->get(\Psr\Log\LoggerInterface::class);
62+
}
63+
4964
/**
5065
* Escape string for HTML context.
5166
*
@@ -84,7 +99,7 @@ function ($errorNumber, $errorString) {
8499
);
85100
} catch (\Exception $e) {
86101
restore_error_handler();
87-
$this->getLogger()->critical($e);
102+
$this->logger->critical($e);
88103
}
89104
restore_error_handler();
90105

@@ -201,7 +216,7 @@ private function escapeAttributeValue($name, $value)
201216
public function escapeHtmlAttr($string, $escapeSingleQuote = true)
202217
{
203218
if ($escapeSingleQuote) {
204-
return $this->getEscaper()->escapeHtmlAttr((string) $string);
219+
return $this->escaper->escapeHtmlAttr((string) $string);
205220
}
206221
return htmlspecialchars((string)$string, ENT_COMPAT, 'UTF-8', false);
207222
}
@@ -226,7 +241,7 @@ public function escapeUrl($string)
226241
*/
227242
public function encodeUrlParam($string)
228243
{
229-
return $this->getEscaper()->escapeUrl($string);
244+
return $this->escaper->escapeUrl($string);
230245
}
231246

232247
/**
@@ -265,7 +280,7 @@ function ($matches) {
265280
*/
266281
public function escapeCss($string)
267282
{
268-
return $this->getEscaper()->escapeCss($string);
283+
return $this->escaper->escapeCss($string);
269284
}
270285

271286
/**
@@ -340,36 +355,6 @@ public function escapeQuote($data, $addSlashes = false)
340355
return htmlspecialchars($data, ENT_QUOTES, null, false);
341356
}
342357

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-
373358
/**
374359
* Filter prohibited tags.
375360
*
@@ -384,7 +369,7 @@ private function filterProhibitedTags(array $allowedTags): array
384369
);
385370

386371
if (!empty($notAllowedTags)) {
387-
$this->getLogger()->critical(
372+
$this->logger->critical(
388373
'The following tag(s) are not allowed: ' . implode(', ', $notAllowedTags)
389374
);
390375
$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)