mirror of
https://github.com/Sylius/Sylius.git
synced 2026-07-14 17:10:53 +00:00
minor #17245 [Core][Order] Remove autoconfigure_with_attributes configuration parameters (GSadee)
This PR was merged into the 2.0 branch. Discussion ---------- | Q | A |-----------------|----- | Branch? | 2.0 | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | no<!-- don't forget to update the UPGRADE-*.md file --> | Related tickets | related to #17244 | License | MIT <!-- - Bug fixes must be submitted against the 1.13 branch - Features and deprecations must be submitted against the 1.14 branch - Features, removing deprecations and BC breaks must be submitted against the 2.0 branch - Make sure that the correct base branch is set To be sure you are not breaking any Backward Compatibilities, check the documentation: https://docs.sylius.com/en/latest/book/organization/backward-compatibility-promise.html --> Commits ------- [Core][Order] Remove autoconfigure_with_attributes configuration parameters Merge branch '2.0' into SYL-3092-remove-autoconfigure-with-attributes-parameter Merge branch '2.0' into SYL-3092-remove-autoconfigure-with-attributes-parameter
This commit is contained in:
commit
bf516af1ec
9 changed files with 22 additions and 152 deletions
|
|
@ -9,6 +9,13 @@
|
|||
* SyliusStateMachineAbstraction:
|
||||
* The `sylius_state_machine_abstraction.default_adapter` option has been changed from `winzou_state_machine` to `symfony_workflow`.
|
||||
|
||||
* The `sylius_core.autoconfigure_with_attributes` and `sylius_order.autoconfigure_with_attributes` configuration parameters
|
||||
have been removed. If you want to autoconfigure order processors and cart contexts, use corresponding attributes
|
||||
instead of interfaces:
|
||||
|
||||
* `Sylius\Bundle\OrderBundle\Attribute\AsCartContext`
|
||||
* `Sylius\Bundle\OrderBundle\Attribute\AsOrderProcessor`
|
||||
|
||||
* The `sylius_user.resources.{name}.user.resetting.pin` configuration parameter has been removed.
|
||||
The corresponding email `reset_password_pin` and `Sylius\Bundle\UserBundle\Controller\UserController::requestPasswordResetPinAction`
|
||||
method have been removed. The related services have been removed as well:
|
||||
|
|
|
|||
|
|
@ -53,12 +53,6 @@ Once you have your own :ref:`component_order_processors_order-processor-interfac
|
|||
}
|
||||
}
|
||||
|
||||
Then you should enable autoconfiguring with attributes in your ``config/packages/_sylius.yaml`` file:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
sylius_order:
|
||||
autoconfigure_with_attributes: true
|
||||
|
||||
Using CompositeOrderProcessor
|
||||
-----------------------------
|
||||
|
|
|
|||
|
|
@ -54,7 +54,6 @@ final class Configuration implements ConfigurationInterface
|
|||
->addDefaultsIfNotSet()
|
||||
->children()
|
||||
->scalarNode('driver')->defaultValue(SyliusResourceBundle::DRIVER_DOCTRINE_ORM)->end()
|
||||
->scalarNode('autoconfigure_with_attributes')->defaultFalse()->end()
|
||||
->booleanNode('prepend_doctrine_migrations')->defaultTrue()->end()
|
||||
->booleanNode('shipping_address_based_taxation')->defaultFalse()->end()
|
||||
->booleanNode('order_by_identifier')->defaultTrue()->end()
|
||||
|
|
|
|||
|
|
@ -102,7 +102,6 @@ final class SyliusCoreExtension extends AbstractResourceExtension implements Pre
|
|||
$this->prependDefaultDriver($container, $config['driver']);
|
||||
$this->prependHwiOauth($container);
|
||||
$this->prependDoctrineMigrations($container);
|
||||
$this->prependSyliusOrderBundle($container, $config);
|
||||
}
|
||||
|
||||
protected function getMigrationsNamespace(): string
|
||||
|
|
@ -140,17 +139,6 @@ final class SyliusCoreExtension extends AbstractResourceExtension implements Pre
|
|||
$loader->load('services/integrations/hwi_oauth.xml');
|
||||
}
|
||||
|
||||
private function prependSyliusOrderBundle(ContainerBuilder $container, array $config): void
|
||||
{
|
||||
if (!$container->hasExtension('sylius_order')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$container->prependExtensionConfig('sylius_order', [
|
||||
'autoconfigure_with_attributes' => $config['autoconfigure_with_attributes'] ?? false,
|
||||
]);
|
||||
}
|
||||
|
||||
private function registerAutoconfiguration(ContainerBuilder $container): void
|
||||
{
|
||||
$container->registerAttributeForAutoconfiguration(
|
||||
|
|
|
|||
|
|
@ -194,26 +194,6 @@ final class ConfigurationTest extends TestCase
|
|||
);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function it_does_not_autoconfigure_with_attributes_by_default(): void
|
||||
{
|
||||
$this->assertProcessedConfigurationEquals(
|
||||
[[]],
|
||||
['autoconfigure_with_attributes' => false],
|
||||
'autoconfigure_with_attributes',
|
||||
);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function it_allows_to_enable_autoconfiguring_with_attributes(): void
|
||||
{
|
||||
$this->assertProcessedConfigurationEquals(
|
||||
[['autoconfigure_with_attributes' => true]],
|
||||
['autoconfigure_with_attributes' => true],
|
||||
'autoconfigure_with_attributes',
|
||||
);
|
||||
}
|
||||
|
||||
protected function getConfiguration(): ConfigurationInterface
|
||||
{
|
||||
return new Configuration();
|
||||
|
|
|
|||
|
|
@ -34,7 +34,6 @@ use Sylius\Bundle\CoreBundle\Tests\Stub\OrdersTotalsProviderStub;
|
|||
use Sylius\Bundle\CoreBundle\Tests\Stub\ProductVariantMapProviderStub;
|
||||
use Sylius\Bundle\CoreBundle\Tests\Stub\TaxCalculationStrategyStub;
|
||||
use Sylius\Bundle\CoreBundle\Tests\Stub\UriBasedSectionResolverStub;
|
||||
use Sylius\Bundle\OrderBundle\DependencyInjection\SyliusOrderExtension;
|
||||
use Sylius\Component\Core\Filesystem\Adapter\FilesystemAdapterInterface;
|
||||
use Sylius\Component\Core\Filesystem\Adapter\FlysystemFilesystemAdapter;
|
||||
use SyliusLabs\DoctrineMigrationsExtraBundle\DependencyInjection\SyliusLabsDoctrineMigrationsExtraExtension;
|
||||
|
|
@ -60,34 +59,6 @@ final class SyliusCoreExtensionTest extends AbstractExtensionTestCase
|
|||
$this->testPrependingDoctrineMigrations('dev');
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*
|
||||
* @dataProvider provideAutoconfigureWithAttributesData
|
||||
*/
|
||||
public function it_prepends_sylius_order_bundle_configuration_with_proper_values(bool $value, bool $orderBundleValue): void
|
||||
{
|
||||
$this->container->setParameter('kernel.environment', 'dev');
|
||||
$this->container->registerExtension(new SyliusOrderExtension());
|
||||
$this->container->loadFromExtension('sylius_core', [
|
||||
'autoconfigure_with_attributes' => $value,
|
||||
]);
|
||||
$this->container->loadFromExtension('sylius_order', [
|
||||
'autoconfigure_with_attributes' => $orderBundleValue,
|
||||
]);
|
||||
|
||||
$this->load();
|
||||
|
||||
$syliusOrderConfig = $this->container->getExtensionConfig('sylius_order');
|
||||
$this->assertEquals($value, $syliusOrderConfig[0]['autoconfigure_with_attributes']);
|
||||
}
|
||||
|
||||
public static function provideAutoconfigureWithAttributesData(): iterable
|
||||
{
|
||||
yield [true, false];
|
||||
yield [false, true];
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function it_does_not_autoconfigure_prepending_doctrine_migrations_if_it_is_disabled_for_test_env(): void
|
||||
{
|
||||
|
|
|
|||
|
|
@ -45,7 +45,6 @@ final class Configuration implements ConfigurationInterface
|
|||
->addDefaultsIfNotSet()
|
||||
->children()
|
||||
->scalarNode('driver')->defaultValue(SyliusResourceBundle::DRIVER_DOCTRINE_ORM)->end()
|
||||
->scalarNode('autoconfigure_with_attributes')->defaultFalse()->end()
|
||||
->end()
|
||||
;
|
||||
|
||||
|
|
|
|||
|
|
@ -15,11 +15,7 @@ namespace Sylius\Bundle\OrderBundle\DependencyInjection;
|
|||
|
||||
use Sylius\Bundle\OrderBundle\Attribute\AsCartContext;
|
||||
use Sylius\Bundle\OrderBundle\Attribute\AsOrderProcessor;
|
||||
use Sylius\Bundle\OrderBundle\DependencyInjection\Compiler\RegisterCartContextsPass;
|
||||
use Sylius\Bundle\OrderBundle\DependencyInjection\Compiler\RegisterProcessorsPass;
|
||||
use Sylius\Bundle\ResourceBundle\DependencyInjection\Extension\AbstractResourceExtension;
|
||||
use Sylius\Component\Order\Context\CartContextInterface;
|
||||
use Sylius\Component\Order\Processor\OrderProcessorInterface;
|
||||
use Symfony\Component\Config\FileLocator;
|
||||
use Symfony\Component\DependencyInjection\ChildDefinition;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
|
|
@ -41,33 +37,23 @@ final class SyliusOrderExtension extends AbstractResourceExtension
|
|||
$container->setParameter('sylius_order.cart_expiration_period', $config['expiration']['cart']);
|
||||
$container->setParameter('sylius_order.order_expiration_period', $config['expiration']['order']);
|
||||
|
||||
$this->registerAutoconfiguration($container, $config['autoconfigure_with_attributes']);
|
||||
$this->registerAutoconfiguration($container);
|
||||
}
|
||||
|
||||
private function registerAutoconfiguration(ContainerBuilder $container, bool $autoconfigureWithAttributes): void
|
||||
private function registerAutoconfiguration(ContainerBuilder $container): void
|
||||
{
|
||||
if (true === $autoconfigureWithAttributes) {
|
||||
$container->registerAttributeForAutoconfiguration(
|
||||
AsCartContext::class,
|
||||
static function (ChildDefinition $definition, AsCartContext $attribute): void {
|
||||
$definition->addTag(AsCartContext::SERVICE_TAG, ['priority' => $attribute->getPriority()]);
|
||||
},
|
||||
);
|
||||
$container->registerAttributeForAutoconfiguration(
|
||||
AsOrderProcessor::class,
|
||||
static function (ChildDefinition $definition, AsOrderProcessor $attribute): void {
|
||||
$definition->addTag(AsOrderProcessor::SERVICE_TAG, ['priority' => $attribute->getPriority()]);
|
||||
},
|
||||
);
|
||||
} else {
|
||||
$container
|
||||
->registerForAutoconfiguration(CartContextInterface::class)
|
||||
->addTag(RegisterCartContextsPass::CART_CONTEXT_SERVICE_TAG)
|
||||
;
|
||||
$container
|
||||
->registerForAutoconfiguration(OrderProcessorInterface::class)
|
||||
->addTag(RegisterProcessorsPass::PROCESSOR_SERVICE_TAG)
|
||||
;
|
||||
}
|
||||
$container->registerAttributeForAutoconfiguration(
|
||||
AsCartContext::class,
|
||||
static function (ChildDefinition $definition, AsCartContext $attribute): void {
|
||||
$definition->addTag(AsCartContext::SERVICE_TAG, ['priority' => $attribute->getPriority()]);
|
||||
},
|
||||
);
|
||||
|
||||
$container->registerAttributeForAutoconfiguration(
|
||||
AsOrderProcessor::class,
|
||||
static function (ChildDefinition $definition, AsOrderProcessor $attribute): void {
|
||||
$definition->addTag(AsOrderProcessor::SERVICE_TAG, ['priority' => $attribute->getPriority()]);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,63 +19,13 @@ use Sylius\Bundle\OrderBundle\DependencyInjection\Compiler\RegisterProcessorsPas
|
|||
use Sylius\Bundle\OrderBundle\DependencyInjection\SyliusOrderExtension;
|
||||
use Sylius\Bundle\OrderBundle\Tests\Stub\CartContextWithAttributeStub;
|
||||
use Sylius\Bundle\OrderBundle\Tests\Stub\OrderProcessorWithAttributeStub;
|
||||
use Sylius\Component\Order\Context\CartContextInterface;
|
||||
use Sylius\Component\Order\Processor\OrderProcessorInterface;
|
||||
use Symfony\Component\DependencyInjection\Definition;
|
||||
|
||||
final class SyliusOrderExtensionTest extends AbstractExtensionTestCase
|
||||
{
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function it_autoconfigures_cart_contexts(): void
|
||||
{
|
||||
$orderProcessor = $this->createMock(CartContextInterface::class);
|
||||
$this->container->setDefinition(
|
||||
'acme.cart_context_autoconfigured',
|
||||
(new Definition())
|
||||
->setClass(get_class($orderProcessor))
|
||||
->setAutoconfigured(true),
|
||||
);
|
||||
|
||||
$this->load();
|
||||
$this->compile();
|
||||
|
||||
$this->assertContainerBuilderHasServiceDefinitionWithTag(
|
||||
'acme.cart_context_autoconfigured',
|
||||
RegisterCartContextsPass::CART_CONTEXT_SERVICE_TAG,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function it_autoconfigures_order_processors(): void
|
||||
{
|
||||
$orderProcessor = $this->createMock(OrderProcessorInterface::class);
|
||||
$this->container->setDefinition(
|
||||
'acme.processor_autoconfigured',
|
||||
(new Definition())
|
||||
->setClass(get_class($orderProcessor))
|
||||
->setAutoconfigured(true),
|
||||
);
|
||||
|
||||
$this->load();
|
||||
$this->compile();
|
||||
|
||||
$this->assertContainerBuilderHasServiceDefinitionWithTag(
|
||||
'acme.processor_autoconfigured',
|
||||
RegisterProcessorsPass::PROCESSOR_SERVICE_TAG,
|
||||
);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function it_autoconfigures_cart_context_with_attribute(): void
|
||||
{
|
||||
$this->container->loadFromExtension('sylius_order', [
|
||||
'autoconfigure_with_attributes' => true,
|
||||
]);
|
||||
|
||||
$this->container->setDefinition(
|
||||
'acme.cart_context_autoconfigured',
|
||||
(new Definition())
|
||||
|
|
@ -96,10 +46,6 @@ final class SyliusOrderExtensionTest extends AbstractExtensionTestCase
|
|||
/** @test */
|
||||
public function it_autoconfigures_order_processors_with_attribute(): void
|
||||
{
|
||||
$this->container->loadFromExtension('sylius_order', [
|
||||
'autoconfigure_with_attributes' => true,
|
||||
]);
|
||||
|
||||
$this->container->setDefinition(
|
||||
'acme.processor_autoconfigured',
|
||||
(new Definition())
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue