for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/*
* This file is part of the Sylius package.
*
* (c) Paweł Jędrzejewski
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Sylius\Component\Core\Factory;
use Sylius\Component\Core\Model\PaymentMethodInterface;
use Sylius\Component\Resource\Factory\FactoryInterface;
/**
* @author Mateusz Zalewski <[email protected]>
final class PaymentMethodFactory implements PaymentMethodFactoryInterface
{
* @var FactoryInterface
private $decoratedFactory;
private $gatewayConfigFactory;
* @param FactoryInterface $decoratedFactory
* @param FactoryInterface $gatewayConfigFactory
public function __construct(FactoryInterface $decoratedFactory, FactoryInterface $gatewayConfigFactory)
$this->decoratedFactory = $decoratedFactory;
$this->gatewayConfigFactory = $gatewayConfigFactory;
}
* {@inheritdoc}
public function createNew()
return $this->decoratedFactory->createNew();
public function createWithGateway($gatewayFactory)
$gatewayConfig = $this->gatewayConfigFactory->createNew();
$gatewayConfig->setFactoryName($gatewayFactory);
/** @var PaymentMethodInterface $paymentMethod */
$paymentMethod = $this->decoratedFactory->createNew();
$paymentMethod->setGatewayConfig($gatewayConfig);
return $paymentMethod;