![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-wishlist/Model/Item/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Wishlist\Model\Item; use Magento\Catalog\Model\Product; use Magento\Framework\App\ObjectManager; use Magento\Framework\Exception\NoSuchEntityException; use Magento\Wishlist\Model\Item; use Magento\Catalog\Api\ProductRepositoryInterface; /** * Item option model * * @method int getProductId() * @api * @since 100.0.2 */ class Option extends \Magento\Framework\Model\AbstractModel implements \Magento\Catalog\Model\Product\Configuration\Item\Option\OptionInterface { /** * @var Item */ protected $_item; /** * @var Product|null */ protected $_product; /** * @var ProductRepositoryInterface */ protected $productRepository; /** * @var \Psr\Log\LoggerInterface */ private $logger; /** * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param ProductRepositoryInterface $productRepository * @param \Magento\Framework\Model\ResourceModel\AbstractResource|null $resource * @param \Magento\Framework\Data\Collection\AbstractDb|null $resourceCollection * @param array $data * @param \Psr\Log\LoggerInterface|null $logger */ public function __construct( \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, ProductRepositoryInterface $productRepository, \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [], \Psr\Log\LoggerInterface $logger = null ) { parent::__construct($context, $registry, $resource, $resourceCollection, $data); $this->productRepository = $productRepository; $this->logger = $logger ?? ObjectManager::getInstance()->get(\Psr\Log\LoggerInterface::class); } /** * Initialize resource model * * @return void */ protected function _construct() { $this->_init(\Magento\Wishlist\Model\ResourceModel\Item\Option::class); } /** * Checks that item option model has data changes * * @return bool */ protected function _hasModelChanged() { if (!$this->hasDataChanges()) { return false; } return $this->_getResource()->hasDataChanged($this); } /** * Set quote item * * @param Item $item * @return $this */ public function setItem($item) { $this->setWishlistItemId($item->getId()); $this->_item = $item; return $this; } /** * Get option item * * @return Item */ public function getItem() { return $this->_item; } /** * Set option product * * @param Product $product * @return $this */ public function setProduct($product) { $this->setProductId($product->getId()); $this->_product = $product; return $this; } /** * Get option product * * @return Product */ public function getProduct() { //In some cases product_id is present instead product instance if (null === $this->_product && $this->getProductId()) { try { $this->_product = $this->productRepository->getById($this->getProductId()); } catch (NoSuchEntityException $exception) { $this->logger->error($exception); } } return $this->_product; } /** * Get option value * * @return mixed */ public function getValue() { return $this->_getData('value'); } /** * Initialize item identifier before save data * * @return $this */ public function beforeSave() { if ($this->getItem()) { $this->setWishlistItemId($this->getItem()->getId()); } return parent::beforeSave(); } /** * Clone option object * * @return $this */ public function __clone() { $this->setId(null); $this->_item = null; return $this; } }