5
5
*/
6
6
namespace Magento \Catalog \Model \Category \Attribute \Backend ;
7
7
8
+ use Magento \Catalog \Model \ImageUploader ;
8
9
use Magento \Framework \App \Filesystem \DirectoryList ;
9
10
use Magento \Framework \App \ObjectManager ;
10
11
use Magento \Framework \File \Uploader ;
@@ -48,7 +49,7 @@ class Image extends \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend
48
49
protected $ _logger ;
49
50
50
51
/**
51
- * @var \Magento\Catalog\Model\ ImageUploader
52
+ * @var ImageUploader
52
53
*/
53
54
private $ imageUploader ;
54
55
@@ -67,18 +68,22 @@ class Image extends \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend
67
68
* @param \Magento\Framework\Filesystem $filesystem
68
69
* @param \Magento\MediaStorage\Model\File\UploaderFactory $fileUploaderFactory
69
70
* @param StoreManagerInterface $storeManager
71
+ * @param ImageUploader $imageUploader
70
72
*/
71
73
public function __construct (
72
74
\Psr \Log \LoggerInterface $ logger ,
73
75
\Magento \Framework \Filesystem $ filesystem ,
74
76
\Magento \MediaStorage \Model \File \UploaderFactory $ fileUploaderFactory ,
75
- StoreManagerInterface $ storeManager = null
77
+ StoreManagerInterface $ storeManager = null ,
78
+ ImageUploader $ imageUploader = null
76
79
) {
77
80
$ this ->_filesystem = $ filesystem ;
78
81
$ this ->_fileUploaderFactory = $ fileUploaderFactory ;
79
82
$ this ->_logger = $ logger ;
80
83
$ this ->storeManager = $ storeManager ??
81
84
ObjectManager::getInstance ()->get (StoreManagerInterface::class);
85
+ $ this ->imageUploader = $ imageUploader ??
86
+ ObjectManager::getInstance ()->get (ImageUploader::class);
82
87
}
83
88
84
89
/**
@@ -107,13 +112,13 @@ private function getUploadedImageName($value)
107
112
*/
108
113
private function checkUniqueImageName (string $ imageName ): string
109
114
{
110
- $ imageUploader = $ this ->getImageUploader ();
111
115
$ mediaDirectory = $ this ->_filesystem ->getDirectoryWrite (DirectoryList::MEDIA );
112
116
$ imageAbsolutePath = $ mediaDirectory ->getAbsolutePath (
113
- $ imageUploader ->getBasePath () . DIRECTORY_SEPARATOR . $ imageName
117
+ $ this -> imageUploader ->getBasePath () . DIRECTORY_SEPARATOR . $ imageName
114
118
);
115
119
116
- $ imageName = Uploader::getNewFilename ($ imageAbsolutePath );
120
+ // phpcs:ignore Magento2.Functions.DiscouragedFunction
121
+ $ imageName = call_user_func ([Uploader::class, 'getNewFilename ' ], $ imageAbsolutePath );
117
122
118
123
return $ imageName ;
119
124
}
@@ -138,7 +143,7 @@ public function beforeSave($object)
138
143
/** @var StoreInterface $store */
139
144
$ store = $ this ->storeManager ->getStore ();
140
145
$ baseMediaDir = $ store ->getBaseMediaDir ();
141
- $ newImgRelativePath = $ this ->getImageUploader () ->moveFileFromTmp ($ imageName , true );
146
+ $ newImgRelativePath = $ this ->imageUploader ->moveFileFromTmp ($ imageName , true );
142
147
$ value [0 ]['url ' ] = '/ ' . $ baseMediaDir . '/ ' . $ newImgRelativePath ;
143
148
$ value [0 ]['name ' ] = $ value [0 ]['url ' ];
144
149
} catch (\Exception $ e ) {
@@ -164,23 +169,6 @@ public function beforeSave($object)
164
169
return parent ::beforeSave ($ object );
165
170
}
166
171
167
- /**
168
- * Get Instance of Category Image Uploader.
169
- *
170
- * @return \Magento\Catalog\Model\ImageUploader
171
- *
172
- * @deprecated 101.0.0
173
- */
174
- private function getImageUploader ()
175
- {
176
- if ($ this ->imageUploader === null ) {
177
- $ this ->imageUploader = \Magento \Framework \App \ObjectManager::getInstance ()
178
- ->get ("\Magento\Catalog\CategoryImageUpload " );
179
- }
180
-
181
- return $ this ->imageUploader ;
182
- }
183
-
184
172
/**
185
173
* Check if temporary file is available for new image upload.
186
174
*
0 commit comments