Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 7 additions & 13 deletions .github/workflows/tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,24 +14,14 @@ jobs:
fail-fast: false
matrix:
include:
- php: 7.4
symfony: 4.4.*
- php: 7.4
symfony: 5.4.*
- php: 8.0
symfony: 4.4.*
- php: 8.0
symfony: 5.4.*
- php: 8.0
symfony: 6.0.*
- php: 8.1
symfony: 4.4.*
- php: 8.1
symfony: 5.4.*
- php: 8.1
symfony: 6.0.*
- php: 8.1
symfony: 6.4.*
- php: 8.2
symfony: 5.4.*
- php: 8.2
symfony: 6.4.*
- php: 8.2
Expand All @@ -40,8 +30,12 @@ jobs:
symfony: 7.0.*
- php: 8.4
symfony: 7.0.*
- php: 8.4
symfony: 8.0.*
- php: 8.5
symfony: 7.0.*
- php: 8.5
symfony: 8.0.*

steps:
- name: Checkout
Expand Down Expand Up @@ -73,7 +67,7 @@ jobs:
composer require symfony/flex:"^1|^2" --no-update

- name: Install dependencies
run: composer update
run: composer update --prefer-source

- name: Run unit tests
run: bin/phpunit
2 changes: 1 addition & 1 deletion Controller/NotifyController.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class NotifyController extends PayumController
{
public function doUnsafeAction(Request $request): Response
{
$gateway = $this->getPayum()->getGateway($request->get('gateway'));
$gateway = $this->getPayum()->getGateway($request->attributes->getString('gateway'));

$gateway->execute(new Notify(null));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
use Symfony\Component\DependencyInjection\ChildDefinition;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
use Symfony\Component\Config\FileLocator;

class DoctrineStorageFactory extends AbstractStorageFactory
Expand Down Expand Up @@ -32,8 +32,8 @@ public function addConfiguration(ArrayNodeDefinition $builder): void

protected function createStorage(ContainerBuilder $container, string $modelClass, array $config): ChildDefinition
{
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../../../Resources/config/storage'));
$loader->load('doctrine.'.$config['driver'].'.xml');
$loader = new PhpFileLoader($container, new FileLocator(dirname(__DIR__, 3).'/Resources/config/storage'));
$loader->load('doctrine.'.$config['driver'].'.php');

$storage = new ChildDefinition(sprintf('payum.storage.doctrine.%s', $config['driver']));
$storage->setPublic(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
use Symfony\Component\DependencyInjection\ChildDefinition;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
use Symfony\Component\Config\FileLocator;

class FilesystemStorageFactory extends AbstractStorageFactory
Expand All @@ -29,8 +29,8 @@ public function addConfiguration(ArrayNodeDefinition $builder): void

protected function createStorage(ContainerBuilder $container, string $modelClass, array $config): ChildDefinition
{
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../../../Resources/config/storage'));
$loader->load('filesystem.xml');
$loader = new PhpFileLoader($container, new FileLocator(dirname(__DIR__, 3).'/Resources/config/storage'));
$loader->load('filesystem.php');

$storage = new ChildDefinition('payum.storage.filesystem.prototype');
$storage->setPublic(true);
Expand Down
6 changes: 3 additions & 3 deletions DependencyInjection/Factory/Storage/Propel1StorageFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

use Symfony\Component\DependencyInjection\ChildDefinition;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
use Symfony\Component\Config\FileLocator;

class Propel1StorageFactory extends AbstractStorageFactory
Expand All @@ -18,8 +18,8 @@ public function getName(): string

protected function createStorage(ContainerBuilder $container, string $modelClass, array $config): ChildDefinition
{
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../../../Resources/config/storage'));
$loader->load('propel1.xml');
$loader = new PhpFileLoader($container, new FileLocator(dirname(__DIR__, 3).'/Resources/config/storage'));
$loader->load('propel1.php');

$storage = new ChildDefinition('payum.storage.propel1');
$storage->setPublic(true);
Expand Down
6 changes: 3 additions & 3 deletions DependencyInjection/Factory/Storage/Propel2StorageFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

use Symfony\Component\DependencyInjection\ChildDefinition;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
use Symfony\Component\Config\FileLocator;

class Propel2StorageFactory extends AbstractStorageFactory
Expand All @@ -18,8 +18,8 @@ public function getName(): string

protected function createStorage(ContainerBuilder $container, string $modelClass, array $config): ChildDefinition
{
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../../../Resources/config/storage'));
$loader->load('propel2.xml');
$loader = new PhpFileLoader($container, new FileLocator(dirname(__DIR__, 3).'/Resources/config/storage'));
$loader->load('propel2.php');

$storage = new ChildDefinition('payum.storage.propel2');
$storage->setPublic(true);
Expand Down
14 changes: 7 additions & 7 deletions DependencyInjection/PayumExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Definition;
use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
use Symfony\Component\DependencyInjection\Reference;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
use Symfony\Component\Config\FileLocator;
Expand Down Expand Up @@ -52,14 +52,14 @@ public function load(array $configs, ContainerBuilder $container): void
$config = $this->processConfiguration($mainConfig, $configs);

// load services
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('payum.xml');
$loader->load('commands.xml');
$loader->load('controller.xml');
$loader->load('form.xml');
$loader = new PhpFileLoader($container, new FileLocator(dirname(__DIR__).'/Resources/config'));
$loader->load('payum.php');
$loader->load('commands.php');
$loader->load('controller.php');
$loader->load('form.php');

if ($container->getParameter('kernel.debug')) {
$loader->load('debug.xml');
$loader->load('debug.php');
}

$this->loadStorages($config['storages'], $container);
Expand Down
5 changes: 1 addition & 4 deletions Form/Type/CreditCardExpirationDateType.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,7 @@ public function configureOptions(OptionsResolver $resolver): void
]);
}

/**
* @return ?string
*/
public function getParent()
public function getParent(): ?string
{
return DateType::class;
}
Expand Down
5 changes: 1 addition & 4 deletions Form/Type/GatewayChoiceType.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,7 @@ public function configureOptions(OptionsResolver $resolver): void
]);
}

/**
* @return ?string
*/
public function getParent()
public function getParent(): ?string
{
return ChoiceType::class;
}
Expand Down
5 changes: 1 addition & 4 deletions Form/Type/GatewayFactoriesChoiceType.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,7 @@ public function configureOptions(OptionsResolver $resolver): void
]);
}

/**
* @return ?string
*/
public function getParent()
public function getParent(): ?string
{
return ChoiceType::class;
}
Expand Down
32 changes: 32 additions & 0 deletions Resources/config/commands.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?php

declare(strict_types=1);

use Payum\Bundle\PayumBundle\Command\CreateCaptureTokenCommand;
use Payum\Bundle\PayumBundle\Command\CreateNotifyTokenCommand;
use Payum\Bundle\PayumBundle\Command\DebugGatewayCommand;
use Payum\Bundle\PayumBundle\Command\StatusCommand;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Reference;

return static function (ContainerBuilder $container): void {
$container->register('payum.command.create_capture_token', CreateCaptureTokenCommand::class)
->setArguments([new Reference('payum')])
->addTag('console.command')
;

$container->register('payum.command.create_notify_token', CreateNotifyTokenCommand::class)
->setArguments([new Reference('payum')])
->addTag('console.command')
;

$container->register('payum.command.debug_gateway', DebugGatewayCommand::class)
->setArguments([new Reference('payum')])
->addTag('console.command')
;

$container->register('payum.command.status', StatusCommand::class)
->setArguments([new Reference('payum')])
->addTag('console.command')
;
};
64 changes: 64 additions & 0 deletions Resources/config/controller.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?php

declare(strict_types=1);

use Payum\Bundle\PayumBundle\Controller\AuthorizeController;
use Payum\Bundle\PayumBundle\Controller\CancelController;
use Payum\Bundle\PayumBundle\Controller\CaptureController;
use Payum\Bundle\PayumBundle\Controller\NotifyController;
use Payum\Bundle\PayumBundle\Controller\PayoutController;
use Payum\Bundle\PayumBundle\Controller\PayumController;
use Payum\Bundle\PayumBundle\Controller\RefundController;
use Payum\Bundle\PayumBundle\Controller\SyncController;
use Symfony\Component\DependencyInjection\ChildDefinition;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Reference;

return static function (ContainerBuilder $container): void {
$container->register(PayumController::class)
->setAbstract(true)
->setArguments([new Reference('payum')])
;

$container->setDefinition(AuthorizeController::class, new ChildDefinition(PayumController::class))
->setPublic(true)
->setAutowired(true)
->addTag('container.service_subscriber')
;

$container->setDefinition(CancelController::class, new ChildDefinition(PayumController::class))
->setPublic(true)
->setAutowired(true)
->addTag('container.service_subscriber')
;

$container->setDefinition(CaptureController::class, new ChildDefinition(PayumController::class))
->setPublic(true)
->setAutowired(true)
->addTag('container.service_subscriber')
;

$container->setDefinition(NotifyController::class, new ChildDefinition(PayumController::class))
->setPublic(true)
->setAutowired(true)
->addTag('container.service_subscriber')
;

$container->setDefinition(PayoutController::class, new ChildDefinition(PayumController::class))
->setPublic(true)
->setAutowired(true)
->addTag('container.service_subscriber')
;

$container->setDefinition(RefundController::class, new ChildDefinition(PayumController::class))
->setPublic(true)
->setAutowired(true)
->addTag('container.service_subscriber')
;

$container->setDefinition(SyncController::class, new ChildDefinition(PayumController::class))
->setPublic(true)
->setAutowired(true)
->addTag('container.service_subscriber')
;
};
23 changes: 23 additions & 0 deletions Resources/config/debug.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?php

declare(strict_types=1);

use Payum\Bundle\PayumBundle\Profiler\PayumCollector;
use Payum\Core\Bridge\Psr\Log\LogExecutedActionsExtension;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Reference;

return static function (ContainerBuilder $container): void {
$container->register('payum.extension.log_executed_actions', LogExecutedActionsExtension::class)
->setPublic(true)
->setArguments([new Reference('logger', ContainerBuilder::IGNORE_ON_INVALID_REFERENCE)])
->addTag('monolog.logger', ['channel' => 'payum'])
->addTag('payum.extension', ['all' => true, 'alias' => 'log_executed_actions'])
;

$container->register('payum.profiler.payum_collector', PayumCollector::class)
->setPublic(true)
->addTag('payum.extension', ['all' => true, 'alias' => 'profile_collector', 'prepend' => true])
->addTag('data_collector', ['template' => '@Payum/Profiler/payum.html.twig', 'id' => 'payum'])
;
};
43 changes: 43 additions & 0 deletions Resources/config/form.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<?php

declare(strict_types=1);

use Payum\Bundle\PayumBundle\Form\Extension\GatewayFactoriesChoiceTypeExtension;
use Payum\Bundle\PayumBundle\Form\Type\CreditCardExpirationDateType;
use Payum\Bundle\PayumBundle\Form\Type\CreditCardType;
use Payum\Bundle\PayumBundle\Form\Type\GatewayConfigType;
use Payum\Bundle\PayumBundle\Form\Type\GatewayFactoriesChoiceType;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Reference;

return static function (ContainerBuilder $container): void {
$container->setParameter('payum.available_gateway_factories', []);

$container->register('payum.form.type.credit_card_expiration_date', CreditCardExpirationDateType::class)
->setPublic(true)
->addTag('form.type')
;

$container->register('payum.form.type.credit_card', CreditCardType::class)
->setPublic(true)
->addTag('form.type')
;

$container->register('payum.form.type.gateway_config', GatewayConfigType::class)
->setPublic(true)
->setArguments([new Reference('payum')])
->addTag('form.type')
;

$container->register('payum.form.type.gateway_factories_choice', GatewayFactoriesChoiceType::class)
->setPublic(true)
->setArguments(['%payum.available_gateway_factories%'])
->addTag('form.type')
;

$container->register('payum.form.extension.gateway_factories_choice', GatewayFactoriesChoiceTypeExtension::class)
->setPublic(true)
->setArguments([new Reference('payum')])
->addTag('form.type_extension', ['extended_type' => GatewayFactoriesChoiceType::class])
;
};
Loading