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:
Jan Góralski 2024-10-18 09:57:50 +02:00 committed by GitHub
commit bf516af1ec
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 22 additions and 152 deletions

View file

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

View file

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

View file

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

View file

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

View file

@ -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();

View file

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

View file

@ -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()
;

View file

@ -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()]);
},
);
}
}

View file

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