[XML2PHP] StateMachineAbstraction

This commit is contained in:
TheMilek 2026-02-18 13:19:51 +01:00 committed by Grzegorz Sadowski
parent 340fce0744
commit e6b7657122
No known key found for this signature in database
GPG key ID: EF87FF4E6E3BD364
6 changed files with 84 additions and 84 deletions

View 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');
};

View file

@ -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>

View file

@ -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');
};

View file

@ -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>

View file

@ -16,7 +16,7 @@ namespace Sylius\Abstraction\StateMachine\DependencyInjection;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Extension\Extension;
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
final class SyliusStateMachineAbstractionExtension extends Extension
{
@ -24,13 +24,13 @@ final class SyliusStateMachineAbstractionExtension extends Extension
{
$config = $this->processConfiguration($this->getConfiguration([], $container), $configs);
$loader = new XmlFileLoader($container, new FileLocator(dirname(__DIR__, 2) . '/config/'));
$loader->load('services.xml');
$loader = new PhpFileLoader($container, new FileLocator(dirname(__DIR__, 2) . '/config/'));
$loader->load('services.php');
if ($container->hasParameter('kernel.bundles')) {
$bundles = $container->getParameter('kernel.bundles');
if (array_key_exists('winzouStateMachineBundle', $bundles)) {
$loader->load('services/integrations/winzou.xml');
$loader->load('services/integrations/winzou.php');
}
}

View file

@ -24,7 +24,6 @@ use Sylius\Component\Payment\Model\PaymentRequestInterface;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument;
use Symfony\Component\DependencyInjection\Definition;
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
use Tests\Sylius\Bundle\PaymentBundle\Stub\GatewayConfigurationTypeStub;
use Tests\Sylius\Bundle\PaymentBundle\Stub\NotifyPaymentProviderStub;
@ -238,10 +237,6 @@ final class SyliusPaymentExtensionTest extends AbstractExtensionTestCase
YamlFileLoader::class,
'command_provider.yaml',
];
yield 'Load XML' => [
XmlFileLoader::class,
'command_provider.xml',
];
}
public static function getHttpResponseProviderLoader(): iterable
@ -250,10 +245,6 @@ final class SyliusPaymentExtensionTest extends AbstractExtensionTestCase
YamlFileLoader::class,
'http_response_provider.yaml',
];
yield 'Load XML' => [
XmlFileLoader::class,
'http_response_provider.xml',
];
}
protected function getContainerExtensions(): array