Your IP : 127.0.0.1
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\Pricing\Price;
use Magento\Framework\Pricing\SaleableInterface;
/**
* Price factory
*/
class Factory
{
/**
* Object Manager
*
* @var \Magento\Framework\ObjectManagerInterface
*/
protected $objectManager;
/**
* Construct
*
* @param \Magento\Framework\ObjectManagerInterface $objectManager
*/
public function __construct(\Magento\Framework\ObjectManagerInterface $objectManager)
{
$this->objectManager = $objectManager;
}
/**
* Create Price object for particular product
*
* @param SaleableInterface $saleableItem
* @param string $className
* @param float $quantity
* @param array $arguments
* @throws \InvalidArgumentException
* @return \Magento\Framework\Pricing\Price\PriceInterface
*/
public function create(SaleableInterface $saleableItem, $className, $quantity, array $arguments = [])
{
$arguments['saleableItem'] = $saleableItem;
$arguments['quantity'] = $quantity;
$price = $this->objectManager->create($className, $arguments);
if (!$price instanceof PriceInterface) {
throw new \InvalidArgumentException(
$className . ' doesn\'t implement \Magento\Framework\Pricing\Price\PriceInterface'
);
}
return $price;
}
}