Adapter.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. /**
  7. * System config image field backend model for Zend PDF generator
  8. *
  9. * @author Magento Core Team <core@magentocommerce.com>
  10. */
  11. namespace Magento\Config\Model\Config\Backend\Image;
  12. /**
  13. * @api
  14. * @since 100.0.2
  15. */
  16. class Adapter extends \Magento\Framework\App\Config\Value
  17. {
  18. /**
  19. * @var \Magento\Framework\Image\AdapterFactory
  20. */
  21. protected $_imageFactory;
  22. /**
  23. * @param \Magento\Framework\Model\Context $context
  24. * @param \Magento\Framework\Registry $registry
  25. * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
  26. * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
  27. * @param \Magento\Framework\Image\AdapterFactory $imageFactory
  28. * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource
  29. * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
  30. * @param array $data
  31. */
  32. public function __construct(
  33. \Magento\Framework\Model\Context $context,
  34. \Magento\Framework\Registry $registry,
  35. \Magento\Framework\App\Config\ScopeConfigInterface $config,
  36. \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
  37. \Magento\Framework\Image\AdapterFactory $imageFactory,
  38. \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
  39. \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
  40. array $data = []
  41. ) {
  42. parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
  43. $this->_imageFactory = $imageFactory;
  44. }
  45. /**
  46. * Checks if chosen image adapter available
  47. *
  48. * @throws \Magento\Framework\Exception\LocalizedException If some of adapter dependencies was not loaded
  49. * @return \Magento\Config\Model\Config\Backend\File
  50. */
  51. public function beforeSave()
  52. {
  53. try {
  54. $this->_imageFactory->create($this->getValue());
  55. } catch (\Exception $e) {
  56. $message = __('The specified image adapter cannot be used because of: %1', $e->getMessage());
  57. throw new \Magento\Framework\Exception\LocalizedException($message);
  58. }
  59. return $this;
  60. }
  61. }