13
13
use Magento \Cms \Model \Template \Filter ;
14
14
use Magento \Cms \Model \Wysiwyg \Config ;
15
15
use Magento \Framework \App \Action \HttpGetActionInterface ;
16
+ use Magento \Framework \Image \Adapter \AdapterInterface ;
17
+ use Magento \Framework \Image \AdapterFactory ;
18
+ use Psr \Log \LoggerInterface ;
19
+ use Magento \Framework \Url \DecoderInterface ;
20
+ use Magento \Framework \Controller \Result \Raw ;
21
+ use Magento \Framework \Controller \Result \RawFactory ;
22
+ use Magento \Backend \App \Action \Context ;
23
+ use Magento \Framework \App \ObjectManager ;
16
24
17
25
/**
18
26
* Process template text for wysiwyg editor.
@@ -30,61 +38,93 @@ class Directive extends Action implements HttpGetActionInterface
30
38
const ADMIN_RESOURCE = 'Magento_Cms::media_gallery ' ;
31
39
32
40
/**
33
- * @var \Magento\Framework\Url\ DecoderInterface
41
+ * @var DecoderInterface
34
42
*/
35
43
protected $ urlDecoder ;
36
44
37
45
/**
38
- * @var \Magento\Framework\Controller\Result\ RawFactory
46
+ * @var RawFactory
39
47
*/
40
48
protected $ resultRawFactory ;
41
49
42
50
/**
43
- * @param Action\Context $context
44
- * @param \Magento\Framework\Url\DecoderInterface $urlDecoder
45
- * @param \Magento\Framework\Controller\Result\RawFactory $resultRawFactory
51
+ * @var LoggerInterface
52
+ */
53
+ private $ logger ;
54
+
55
+ /**
56
+ * @var AdapterFactory
57
+ */
58
+ private $ adapterFactory ;
59
+
60
+ /**
61
+ * @var Config
62
+ */
63
+ private $ config ;
64
+
65
+ /**
66
+ * @var Filter
67
+ */
68
+ private $ filter ;
69
+
70
+ /**
71
+ * Constructor
72
+ *
73
+ * @param Context $context
74
+ * @param DecoderInterface $urlDecoder
75
+ * @param RawFactory $resultRawFactory
76
+ * @param AdapterFactory|null $adapterFactory
77
+ * @param LoggerInterface|null $logger
78
+ * @param Config|null $config
79
+ * @param Filter|null $filter
46
80
*/
47
81
public function __construct (
48
- Action \Context $ context ,
49
- \Magento \Framework \Url \DecoderInterface $ urlDecoder ,
50
- \Magento \Framework \Controller \Result \RawFactory $ resultRawFactory
82
+ Context $ context ,
83
+ DecoderInterface $ urlDecoder ,
84
+ RawFactory $ resultRawFactory ,
85
+ AdapterFactory $ adapterFactory = null ,
86
+ LoggerInterface $ logger = null ,
87
+ Config $ config = null ,
88
+ Filter $ filter = null
51
89
) {
52
90
parent ::__construct ($ context );
53
91
$ this ->urlDecoder = $ urlDecoder ;
54
92
$ this ->resultRawFactory = $ resultRawFactory ;
93
+ $ this ->adapterFactory = $ adapterFactory ?: ObjectManager::getInstance ()->get (AdapterFactory::class);
94
+ $ this ->logger = $ logger ?: ObjectManager::getInstance ()->get (LoggerInterface::class);
95
+ $ this ->config = $ config ?: ObjectManager::getInstance ()->get (Config::class);
96
+ $ this ->filter = $ filter ?: ObjectManager::getInstance ()->get (Filter::class);
55
97
}
56
98
57
99
/**
58
100
* Template directives callback
59
101
*
60
- * @return \Magento\Framework\Controller\Result\ Raw
102
+ * @return Raw
61
103
*/
62
104
public function execute ()
63
105
{
64
106
$ directive = $ this ->getRequest ()->getParam ('___directive ' );
65
107
$ directive = $ this ->urlDecoder ->decode ($ directive );
66
108
try {
67
109
/** @var Filter $filter */
68
- $ filter = $ this ->_objectManager ->create (Filter::class);
69
- $ imagePath = $ filter ->filter ($ directive );
70
- /** @var \Magento\Framework\Image\Adapter\AdapterInterface $image */
71
- $ image = $ this ->_objectManager ->get (\Magento \Framework \Image \AdapterFactory::class)->create ();
72
- /** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
110
+ $ imagePath = $ this ->filter ->filter ($ directive );
111
+ /** @var AdapterInterface $image */
112
+ $ image = $ this ->adapterFactory ->create ();
113
+ /** @var Raw $resultRaw */
73
114
$ resultRaw = $ this ->resultRawFactory ->create ();
74
115
$ image ->open ($ imagePath );
75
116
$ resultRaw ->setHeader ('Content-Type ' , $ image ->getMimeType ());
76
117
$ resultRaw ->setContents ($ image ->getImage ());
77
118
} catch (\Exception $ e ) {
78
119
/** @var Config $config */
79
- $ config = $ this ->_objectManager ->get (Config::class);
80
- $ imagePath = $ config ->getSkinImagePlaceholderPath ();
120
+ $ imagePath = $ this ->config ->getSkinImagePlaceholderPath ();
81
121
try {
82
122
$ image ->open ($ imagePath );
83
123
$ resultRaw ->setHeader ('Content-Type ' , $ image ->getMimeType ());
84
124
$ resultRaw ->setContents ($ image ->getImage ());
85
- $ this ->_objectManager -> get (\ Psr \ Log \LoggerInterface::class)-> critical ($ e );
125
+ $ this ->logger -> warning ($ e );
86
126
} catch (\Exception $ e ) {
87
- $ this ->_objectManager -> get (\ Psr \ Log \LoggerInterface::class)-> critical ($ e );
127
+ $ this ->logger -> warning ($ e );
88
128
}
89
129
}
90
130
return $ resultRaw ;
0 commit comments