mirror of
https://github.com/Sylius/Sylius.git
synced 2026-07-14 17:10:53 +00:00
[XML2PHP] StateMachineAbstraction
This commit is contained in:
parent
340fce0744
commit
e6b7657122
6 changed files with 84 additions and 84 deletions
50
src/Sylius/Abstraction/StateMachine/config/services.php
Normal file
50
src/Sylius/Abstraction/StateMachine/config/services.php
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the Sylius package.
|
||||||
|
*
|
||||||
|
* (c) Sylius Sp. z o.o.
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
|
||||||
|
|
||||||
|
use Sylius\Abstraction\StateMachine\CompositeStateMachine;
|
||||||
|
use Sylius\Abstraction\StateMachine\StateMachineInterface;
|
||||||
|
use Sylius\Abstraction\StateMachine\SymfonyWorkflowAdapter;
|
||||||
|
use Sylius\Abstraction\StateMachine\Twig\StateMachineExtension;
|
||||||
|
|
||||||
|
return static function (ContainerConfigurator $container): void {
|
||||||
|
$services = $container->services();
|
||||||
|
$services->defaults()->public();
|
||||||
|
|
||||||
|
$services->set('sylius_abstraction.state_machine', CompositeStateMachine::class)
|
||||||
|
->args([
|
||||||
|
tagged_iterator('sylius.state_machine', indexAttribute: 'key'),
|
||||||
|
'%sylius_abstraction.state_machine.default_adapter%',
|
||||||
|
'%sylius_abstraction.state_machine.graphs_to_adapters_mapping%',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$services->alias(StateMachineInterface::class . ' $compositeStateMachine', 'sylius_abstraction.state_machine.composite');
|
||||||
|
|
||||||
|
$services->alias('sylius_abstraction.state_machine.composite', 'sylius_abstraction.state_machine');
|
||||||
|
$services->alias(StateMachineInterface::class, 'sylius_abstraction.state_machine');
|
||||||
|
|
||||||
|
$services->set('sylius_abstraction.state_machine.adapter.symfony_workflow', SymfonyWorkflowAdapter::class)
|
||||||
|
->args([
|
||||||
|
service('workflow.registry'),
|
||||||
|
])
|
||||||
|
->tag('sylius.state_machine', ['key' => 'symfony_workflow']);
|
||||||
|
|
||||||
|
$services->alias(StateMachineInterface::class . ' $symfonyWorkflow', 'sylius_abstraction.state_machine.adapter.symfony_workflow');
|
||||||
|
|
||||||
|
$services->set('sylius_abstraction.twig.extension.state_machine', StateMachineExtension::class)
|
||||||
|
->args([
|
||||||
|
service('sylius_abstraction.state_machine'),
|
||||||
|
])
|
||||||
|
->tag('twig.extension');
|
||||||
|
};
|
||||||
|
|
@ -1,43 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
|
|
||||||
This file is part of the Sylius package.
|
|
||||||
|
|
||||||
(c) Sylius Sp. z o.o.
|
|
||||||
|
|
||||||
For the full copyright and license information, please view the LICENSE
|
|
||||||
file that was distributed with this source code.
|
|
||||||
|
|
||||||
-->
|
|
||||||
|
|
||||||
<container
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns="http://symfony.com/schema/dic/services"
|
|
||||||
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"
|
|
||||||
>
|
|
||||||
<services>
|
|
||||||
<defaults public="true" />
|
|
||||||
|
|
||||||
<service id="sylius_abstraction.state_machine" class="Sylius\Abstraction\StateMachine\CompositeStateMachine">
|
|
||||||
<argument type="tagged_iterator" tag="sylius.state_machine" index-by="key" />
|
|
||||||
<argument>%sylius_abstraction.state_machine.default_adapter%</argument>
|
|
||||||
<argument>%sylius_abstraction.state_machine.graphs_to_adapters_mapping%</argument>
|
|
||||||
</service>
|
|
||||||
<service id="Sylius\Abstraction\StateMachine\StateMachineInterface $compositeStateMachine" alias="sylius_abstraction.state_machine.composite" />
|
|
||||||
|
|
||||||
<service id="sylius_abstraction.state_machine.composite" alias="sylius_abstraction.state_machine" />
|
|
||||||
<service id="Sylius\Abstraction\StateMachine\StateMachineInterface" alias="sylius_abstraction.state_machine" />
|
|
||||||
|
|
||||||
<service id="sylius_abstraction.state_machine.adapter.symfony_workflow" class="Sylius\Abstraction\StateMachine\SymfonyWorkflowAdapter">
|
|
||||||
<argument type="service" id="workflow.registry" />
|
|
||||||
<tag name="sylius.state_machine" key="symfony_workflow" />
|
|
||||||
</service>
|
|
||||||
<service id="Sylius\Abstraction\StateMachine\StateMachineInterface $symfonyWorkflow" alias="sylius_abstraction.state_machine.adapter.symfony_workflow" />
|
|
||||||
|
|
||||||
<service id="sylius_abstraction.twig.extension.state_machine" class="Sylius\Abstraction\StateMachine\Twig\StateMachineExtension">
|
|
||||||
<argument type="service" id="sylius_abstraction.state_machine" />
|
|
||||||
<tag name="twig.extension" />
|
|
||||||
</service>
|
|
||||||
</services>
|
|
||||||
</container>
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the Sylius package.
|
||||||
|
*
|
||||||
|
* (c) Sylius Sp. z o.o.
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
|
||||||
|
|
||||||
|
use Sylius\Abstraction\StateMachine\StateMachineInterface;
|
||||||
|
use Sylius\Abstraction\StateMachine\WinzouStateMachineAdapter;
|
||||||
|
|
||||||
|
return static function (ContainerConfigurator $container): void {
|
||||||
|
$services = $container->services();
|
||||||
|
$services->defaults()->public();
|
||||||
|
|
||||||
|
$services->set('sylius_abstraction.state_machine.adapter.winzou_state_machine', WinzouStateMachineAdapter::class)
|
||||||
|
->args([
|
||||||
|
service('sm.factory'),
|
||||||
|
])
|
||||||
|
->tag('sylius.state_machine', ['key' => 'winzou_state_machine']);
|
||||||
|
|
||||||
|
$services->alias(StateMachineInterface::class . ' $winzouStateMachine', 'sylius_abstraction.state_machine.adapter.winzou_state_machine');
|
||||||
|
};
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
|
|
||||||
This file is part of the Sylius package.
|
|
||||||
|
|
||||||
(c) Sylius Sp. z o.o.
|
|
||||||
|
|
||||||
For the full copyright and license information, please view the LICENSE
|
|
||||||
file that was distributed with this source code.
|
|
||||||
|
|
||||||
-->
|
|
||||||
|
|
||||||
<container
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns="http://symfony.com/schema/dic/services"
|
|
||||||
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"
|
|
||||||
>
|
|
||||||
<services>
|
|
||||||
<defaults public="true" />
|
|
||||||
|
|
||||||
<service id="sylius_abstraction.state_machine.adapter.winzou_state_machine" class="Sylius\Abstraction\StateMachine\WinzouStateMachineAdapter">
|
|
||||||
<argument type="service" id="sm.factory" />
|
|
||||||
<tag name="sylius.state_machine" key="winzou_state_machine" />
|
|
||||||
</service>
|
|
||||||
<service id="Sylius\Abstraction\StateMachine\StateMachineInterface $winzouStateMachine" alias="sylius_abstraction.state_machine.adapter.winzou_state_machine" />
|
|
||||||
</services>
|
|
||||||
</container>
|
|
||||||
|
|
@ -16,7 +16,7 @@ namespace Sylius\Abstraction\StateMachine\DependencyInjection;
|
||||||
use Symfony\Component\Config\FileLocator;
|
use Symfony\Component\Config\FileLocator;
|
||||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||||
use Symfony\Component\DependencyInjection\Extension\Extension;
|
use Symfony\Component\DependencyInjection\Extension\Extension;
|
||||||
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
|
use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
|
||||||
|
|
||||||
final class SyliusStateMachineAbstractionExtension extends Extension
|
final class SyliusStateMachineAbstractionExtension extends Extension
|
||||||
{
|
{
|
||||||
|
|
@ -24,13 +24,13 @@ final class SyliusStateMachineAbstractionExtension extends Extension
|
||||||
{
|
{
|
||||||
$config = $this->processConfiguration($this->getConfiguration([], $container), $configs);
|
$config = $this->processConfiguration($this->getConfiguration([], $container), $configs);
|
||||||
|
|
||||||
$loader = new XmlFileLoader($container, new FileLocator(dirname(__DIR__, 2) . '/config/'));
|
$loader = new PhpFileLoader($container, new FileLocator(dirname(__DIR__, 2) . '/config/'));
|
||||||
$loader->load('services.xml');
|
$loader->load('services.php');
|
||||||
|
|
||||||
if ($container->hasParameter('kernel.bundles')) {
|
if ($container->hasParameter('kernel.bundles')) {
|
||||||
$bundles = $container->getParameter('kernel.bundles');
|
$bundles = $container->getParameter('kernel.bundles');
|
||||||
if (array_key_exists('winzouStateMachineBundle', $bundles)) {
|
if (array_key_exists('winzouStateMachineBundle', $bundles)) {
|
||||||
$loader->load('services/integrations/winzou.xml');
|
$loader->load('services/integrations/winzou.php');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,6 @@ use Sylius\Component\Payment\Model\PaymentRequestInterface;
|
||||||
use Symfony\Component\Config\FileLocator;
|
use Symfony\Component\Config\FileLocator;
|
||||||
use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument;
|
use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument;
|
||||||
use Symfony\Component\DependencyInjection\Definition;
|
use Symfony\Component\DependencyInjection\Definition;
|
||||||
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
|
|
||||||
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
|
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
|
||||||
use Tests\Sylius\Bundle\PaymentBundle\Stub\GatewayConfigurationTypeStub;
|
use Tests\Sylius\Bundle\PaymentBundle\Stub\GatewayConfigurationTypeStub;
|
||||||
use Tests\Sylius\Bundle\PaymentBundle\Stub\NotifyPaymentProviderStub;
|
use Tests\Sylius\Bundle\PaymentBundle\Stub\NotifyPaymentProviderStub;
|
||||||
|
|
@ -238,10 +237,6 @@ final class SyliusPaymentExtensionTest extends AbstractExtensionTestCase
|
||||||
YamlFileLoader::class,
|
YamlFileLoader::class,
|
||||||
'command_provider.yaml',
|
'command_provider.yaml',
|
||||||
];
|
];
|
||||||
yield 'Load XML' => [
|
|
||||||
XmlFileLoader::class,
|
|
||||||
'command_provider.xml',
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getHttpResponseProviderLoader(): iterable
|
public static function getHttpResponseProviderLoader(): iterable
|
||||||
|
|
@ -250,10 +245,6 @@ final class SyliusPaymentExtensionTest extends AbstractExtensionTestCase
|
||||||
YamlFileLoader::class,
|
YamlFileLoader::class,
|
||||||
'http_response_provider.yaml',
|
'http_response_provider.yaml',
|
||||||
];
|
];
|
||||||
yield 'Load XML' => [
|
|
||||||
XmlFileLoader::class,
|
|
||||||
'http_response_provider.xml',
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getContainerExtensions(): array
|
protected function getContainerExtensions(): array
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue