* @copyright 2007-2018 PrestaShop SA * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ namespace PrestaShop\PrestaShop\Adapter\Presenter\Product; use PrestaShop\PrestaShop\Adapter\Image\ImageRetriever; use PrestaShop\PrestaShop\Adapter\Product\PriceFormatter; use PrestaShop\PrestaShop\Adapter\Product\ProductColorsRetriever; use PrestaShop\PrestaShop\Core\Product\ProductPresentationSettings; use Symfony\Component\Translation\TranslatorInterface; use Language; use Link; class ProductPresenter { /** * @var ImageRetriever */ protected $imageRetriever; /** * @var Link */ protected $link; /** * @var PriceFormatter */ protected $priceFormatter; /** * @var ProductColorsRetriever */ protected $productColorsRetriever; /** * @var TranslatorInterface */ protected $translator; public function __construct( ImageRetriever $imageRetriever, Link $link, PriceFormatter $priceFormatter, ProductColorsRetriever $productColorsRetriever, TranslatorInterface $translator ) { $this->imageRetriever = $imageRetriever; $this->link = $link; $this->priceFormatter = $priceFormatter; $this->productColorsRetriever = $productColorsRetriever; $this->translator = $translator; } public function present( ProductPresentationSettings $settings, array $product, Language $language ) { return new ProductLazyArray( $settings, $product, $language, $this->imageRetriever, $this->link, $this->priceFormatter, $this->productColorsRetriever, $this->translator ); } }