Skip to content

Commit

Permalink
Add typehints for factories (#538)
Browse files Browse the repository at this point in the history
* feat: add typehints for factories

* Trigger GitHub actions

Co-authored-by: Christopher Georg <christopher.georg@sr-travel.de>
  • Loading branch information
Chris53897 and Chris8934 committed Mar 2, 2022
1 parent 588c93e commit 8cd9755
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 71 deletions.
16 changes: 3 additions & 13 deletions DependencyInjection/Factory/Storage/AbstractStorageFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ abstract class AbstractStorageFactory implements StorageFactoryInterface
/**
* {@inheritDoc}
*/
public function create(ContainerBuilder $container, $modelClass, array $config)
public function create(ContainerBuilder $container, $modelClass, array $config): string
{
$storageId = sprintf('payum.storage.%s', strtolower(str_replace(array('\\\\', '\\'), '_', $modelClass)));

Expand All @@ -22,19 +22,9 @@ public function create(ContainerBuilder $container, $modelClass, array $config)
return $storageId;
}

/**
* {@inheritDoc}
*/
public function addConfiguration(ArrayNodeDefinition $builder)
public function addConfiguration(ArrayNodeDefinition $builder): void
{
}

/**
* @param ContainerBuilder $container
* @param string $modelClass
* @param array $config
*
* @return Definition
*/
abstract protected function createStorage(ContainerBuilder $container, $modelClass, array $config);
abstract protected function createStorage(ContainerBuilder $container, string $modelClass, array $config): Definition;
}
12 changes: 3 additions & 9 deletions DependencyInjection/Factory/Storage/CustomStorageFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,17 @@ class CustomStorageFactory extends AbstractStorageFactory
/**
* {@inheritDoc}
*/
public function getName()
public function getName(): string
{
return 'custom';
}

/**
* {@inheritdoc}
*/
protected function createStorage(ContainerBuilder $container, $modelClass, array $config)
protected function createStorage(ContainerBuilder $container, string $modelClass, array $config): ChildDefinition
{
return new ChildDefinition($config['service']);
}

/**
* {@inheritDoc}
*/
public function addConfiguration(ArrayNodeDefinition $builder)
public function addConfiguration(ArrayNodeDefinition $builder): void
{
parent::addConfiguration($builder);

Expand Down
14 changes: 4 additions & 10 deletions DependencyInjection/Factory/Storage/DoctrineStorageFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,12 @@ class DoctrineStorageFactory extends AbstractStorageFactory
/**
* {@inheritDoc}
*/
public function getName()
public function getName(): string
{
return 'doctrine';
}

/**
* {@inheritDoc}
*/
public function addConfiguration(ArrayNodeDefinition $builder)
public function addConfiguration(ArrayNodeDefinition $builder): void
{
parent::addConfiguration($builder);

Expand All @@ -33,10 +30,7 @@ public function addConfiguration(ArrayNodeDefinition $builder)
->end();
}

/**
* {@inheritDoc}
*/
protected function createStorage(ContainerBuilder $container, $modelClass, array $config)
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');
Expand All @@ -47,4 +41,4 @@ protected function createStorage(ContainerBuilder $container, $modelClass, array

return $storage;
}
}
}
14 changes: 4 additions & 10 deletions DependencyInjection/Factory/Storage/FilesystemStorageFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,12 @@ class FilesystemStorageFactory extends AbstractStorageFactory
/**
* {@inheritdoc}
*/
public function getName()
public function getName(): string
{
return 'filesystem';
}

/**
* {@inheritdoc}
*/
public function addConfiguration(ArrayNodeDefinition $builder)
public function addConfiguration(ArrayNodeDefinition $builder): void
{
parent::addConfiguration($builder);

Expand All @@ -30,10 +27,7 @@ public function addConfiguration(ArrayNodeDefinition $builder)
->end();
}

/**
* {@inheritdoc}
*/
protected function createStorage(ContainerBuilder $container, $modelClass, array $config)
protected function createStorage(ContainerBuilder $container, string $modelClass, array $config): ChildDefinition
{
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../../../Resources/config/storage'));
$loader->load('filesystem.xml');
Expand All @@ -46,4 +40,4 @@ protected function createStorage(ContainerBuilder $container, $modelClass, array

return $storage;
}
}
}
15 changes: 4 additions & 11 deletions DependencyInjection/Factory/Storage/Propel1StorageFactory.php
Original file line number Diff line number Diff line change
@@ -1,29 +1,22 @@
<?php

namespace Payum\Bundle\PayumBundle\DependencyInjection\Factory\Storage;


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


class Propel1StorageFactory extends AbstractStorageFactory
class Propel1StorageFactory extends AbstractStorageFactory
{

/**
* {@inheritDoc}
*/
public function getName()
public function getName(): string
{
return "propel1";
}

/**
* {@inheritDoc}
*/
protected function createStorage(ContainerBuilder $container, $modelClass, array $config)

protected function createStorage(ContainerBuilder $container, string $modelClass, array $config): ChildDefinition
{
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../../../Resources/config/storage'));
$loader->load('propel1.xml');
Expand Down
13 changes: 3 additions & 10 deletions DependencyInjection/Factory/Storage/Propel2StorageFactory.php
Original file line number Diff line number Diff line change
@@ -1,29 +1,22 @@
<?php

namespace Payum\Bundle\PayumBundle\DependencyInjection\Factory\Storage;


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


class Propel2StorageFactory extends AbstractStorageFactory
{

/**
* {@inheritDoc}
*/
public function getName()
public function getName(): string
{
return "propel2";
}

/**
* {@inheritDoc}
*/
protected function createStorage(ContainerBuilder $container, $modelClass, array $config)

protected function createStorage(ContainerBuilder $container, string $modelClass, array $config): ChildDefinition
{
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../../../Resources/config/storage'));
$loader->load('propel2.xml');
Expand Down
11 changes: 3 additions & 8 deletions DependencyInjection/Factory/Storage/StorageFactoryInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,21 @@
interface StorageFactoryInterface
{
/**
* @param ContainerBuilder $container
* @param string $modelClass
* @param array $config
*
* @return string The payment serviceId
*/
function create(ContainerBuilder $container, $modelClass, array $config);

/**
* The storage name,
* The storage name,
* For example filesystem, doctrine, propel etc.
*
*
* @return string
*/
function getName();

/**
* @param ArrayNodeDefinition $builder
*
* @return void
*/
function addConfiguration(ArrayNodeDefinition $builder);
}
}

0 comments on commit 8cd9755

Please sign in to comment.