From 9db02e9c5d5549b9cb0517832d818283bf026bd4 Mon Sep 17 00:00:00 2001 From: Mateusz Date: Tue, 21 Jul 2026 15:27:39 +0200 Subject: [PATCH 1/3] [Maintenance] Convert xml seervice def. to PHP config --- config/services.php | 74 ++++++++++ config/services.xml | 86 ----------- config/services/actions.php | 63 ++++++++ config/services/actions.xml | 68 --------- config/services/checkers.php | 38 +++++ config/services/checkers.xml | 46 ------ config/services/command_bus.php | 35 +++++ config/services/command_bus.xml | 44 ------ config/services/converters.php | 56 ++++++++ config/services/converters.xml | 69 --------- config/services/creators.php | 23 +++ config/services/creators.xml | 33 ----- config/services/event_bus.php | 41 ++++++ config/services/event_bus.xml | 56 -------- config/services/factories.php | 39 +++++ config/services/factories.xml | 63 -------- config/services/filters.php | 12 ++ config/services/filters.xml | 23 --- config/services/generators.php | 70 +++++++++ config/services/generators.xml | 72 ---------- config/services/listeners.php | 14 ++ config/services/listeners.xml | 26 ---- config/services/providers.php | 71 +++++++++ config/services/providers.xml | 88 ------------ config/services/queries.php | 14 ++ config/services/queries.xml | 34 ----- config/services/resolvers.php | 23 +++ config/services/resolvers.xml | 33 ----- config/services/state_resolvers.php | 35 +++++ config/services/state_resolvers.xml | 41 ------ config/services/twig_components.php | 13 ++ config/services/twig_components.xml | 32 ----- config/services/validators.php | 36 +++++ config/services/validators.xml | 44 ------ .../SyliusRefundExtension.php | 6 +- tests/Behat/Resources/services.php | 135 ++++++++++++++++++ tests/Behat/Resources/services.xml | 129 ----------------- .../TestApplication/config/services_test.php | 2 +- 38 files changed, 796 insertions(+), 991 deletions(-) create mode 100644 config/services.php delete mode 100644 config/services.xml create mode 100644 config/services/actions.php delete mode 100644 config/services/actions.xml create mode 100644 config/services/checkers.php delete mode 100644 config/services/checkers.xml create mode 100644 config/services/command_bus.php delete mode 100644 config/services/command_bus.xml create mode 100644 config/services/converters.php delete mode 100644 config/services/converters.xml create mode 100644 config/services/creators.php delete mode 100644 config/services/creators.xml create mode 100644 config/services/event_bus.php delete mode 100644 config/services/event_bus.xml create mode 100644 config/services/factories.php delete mode 100644 config/services/factories.xml create mode 100644 config/services/filters.php delete mode 100644 config/services/filters.xml create mode 100644 config/services/generators.php delete mode 100644 config/services/generators.xml create mode 100644 config/services/listeners.php delete mode 100644 config/services/listeners.xml create mode 100644 config/services/providers.php delete mode 100644 config/services/providers.xml create mode 100644 config/services/queries.php delete mode 100644 config/services/queries.xml create mode 100644 config/services/resolvers.php delete mode 100644 config/services/resolvers.xml create mode 100644 config/services/state_resolvers.php delete mode 100644 config/services/state_resolvers.xml create mode 100644 config/services/twig_components.php delete mode 100644 config/services/twig_components.xml create mode 100644 config/services/validators.php delete mode 100644 config/services/validators.xml create mode 100644 tests/Behat/Resources/services.php delete mode 100644 tests/Behat/Resources/services.xml diff --git a/config/services.php b/config/services.php new file mode 100644 index 000000000..3eb928775 --- /dev/null +++ b/config/services.php @@ -0,0 +1,74 @@ +services(); + $parameters = $container->parameters(); + $container->import('services/**/*.php'); + + $parameters->set('sylius_refund.default_logo_file', '@SyliusRefundPlugin/assets/sylius-logo.png'); + $parameters->set('sylius_refund.template.logo_file', '%env(default:sylius_refund.default_logo_file:resolve:SYLIUS_REFUND_LOGO_FILE)%'); + + $services->defaults() + ->public(); + + $services->set('sylius_refund.calculator.unit_refund_total', \Sylius\RefundPlugin\Calculator\UnitRefundTotalCalculator::class) + ->args([service('sylius_refund.provider.remaining_total')]); + + $services->alias(\Sylius\RefundPlugin\Calculator\UnitRefundTotalCalculatorInterface::class, 'sylius_refund.calculator.unit_refund_total'); + + $services->set('sylius_refund.refunder.order_item_units', \Sylius\RefundPlugin\Refunder\OrderItemUnitsRefunder::class) + ->args([ + service('sylius_refund.creator.refund'), + service('sylius.event_bus'), + service('sylius_refund.filter.unit_refund'), + ]) + ->tag('sylius_refund.refunder'); + + $services->set('sylius_refund.refunder.order_shipments', \Sylius\RefundPlugin\Refunder\OrderShipmentsRefunder::class) + ->args([ + service('sylius_refund.creator.refund'), + service('sylius.event_bus'), + service('sylius_refund.filter.unit_refund'), + ]) + ->tag('sylius_refund.refunder'); + + $services->set('sylius_refund.twig.extension.order_refunds', \Sylius\RefundPlugin\Twig\OrderRefundsExtension::class) + ->args([ + service('sylius_refund.provider.order_refunded_total'), + service(\Sylius\RefundPlugin\Provider\UnitRefundedTotalProviderInterface::class), + service('sylius_refund.checker.unit_refunding_availability'), + service('sylius.repository.order'), + service('sylius_refund.repository.refund_payment'), + service('sylius_refund.factory.refund_type'), + ]) + ->tag('twig.extension'); + + $services->set('sylius_refund.twig.extension.order_refund_availability', \Sylius\RefundPlugin\Twig\OrderRefundAvailabilityExtension::class) + ->args([service('sylius_refund.checker.order_refunds_list_availability')]) + ->tag('twig.extension'); + + $services->set('sylius_refund.repository.credit_memo_sequence', \Doctrine\ORM\EntityRepository::class) + ->args([\Sylius\RefundPlugin\Entity\CreditMemoSequence::class]) + ->factory([service('doctrine.orm.entity_manager'), 'getRepository']); + + $services->set('sylius_refund.email_sender.credit_memo', \Sylius\RefundPlugin\Sender\CreditMemoEmailSender::class) + ->args([ + service('sylius.email_sender'), + '%sylius_refund.pdf_generator.enabled%', + service('sylius_refund.resolver.credit_memo_file'), + service('sylius_refund.resolver.credit_memo_file_path'), + ]); + + $services->alias(\Sylius\RefundPlugin\Sender\CreditMemoEmailSenderInterface::class, 'sylius_refund.email_sender.credit_memo'); + + $services->set('sylius_refund.response_builder.credit_memo_file', \Sylius\RefundPlugin\ResponseBuilder\CreditMemoFileResponseBuilder::class); + + $services->alias(\Sylius\RefundPlugin\ResponseBuilder\CreditMemoFileResponseBuilderInterface::class, 'sylius_refund.response_builder.credit_memo_file'); + + $services->set('sylius_refund.manager.credit_memo_file', \Sylius\RefundPlugin\Manager\CreditMemoFileManager::class) + ->args([service('gaufrette.sylius_refund_credit_memo_filesystem')]); + + $services->alias(\Sylius\RefundPlugin\Manager\CreditMemoFileManagerInterface::class, 'sylius_refund.manager.credit_memo_file'); +}; diff --git a/config/services.xml b/config/services.xml deleted file mode 100644 index ef297f65c..000000000 --- a/config/services.xml +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - @SyliusRefundPlugin/assets/sylius-logo.png - %env(default:sylius_refund.default_logo_file:resolve:SYLIUS_REFUND_LOGO_FILE)% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Sylius\RefundPlugin\Entity\CreditMemoSequence - - - - - %sylius_refund.pdf_generator.enabled% - - - - - - - - - - - - - - diff --git a/config/services/actions.php b/config/services/actions.php new file mode 100644 index 000000000..ff80e47db --- /dev/null +++ b/config/services/actions.php @@ -0,0 +1,63 @@ +services(); + $parameters = $container->parameters(); + + $services->defaults() + ->public(); + + $services->set('sylius_refund.controller.admin.download_credit_memo', \Sylius\RefundPlugin\Action\Admin\DownloadCreditMemoAction::class) + ->args([ + service('sylius_refund.resolver.credit_memo_file'), + service('sylius_refund.response_builder.credit_memo_file'), + '%sylius_refund.pdf_generator.enabled%', + ]); + + $services->set('sylius_refund.controller.shop.download_credit_memo', \Sylius\RefundPlugin\Action\Shop\DownloadCreditMemoAction::class) + ->args([ + service('sylius_refund.resolver.credit_memo_file'), + service('sylius_refund.checker.credit_memo_customer_relation'), + service('sylius_refund.response_builder.credit_memo_file'), + '%sylius_refund.pdf_generator.enabled%', + ]); + + $services->set('sylius_refund.controller.admin.order_refunds_list', \Sylius\RefundPlugin\Action\Admin\OrderRefundsListAction::class) + ->args([ + service('sylius.repository.order'), + service('sylius_refund.checker.order_refunds_list_availability'), + service('sylius_refund.provider.refund_payment_methods'), + service('twig'), + service('request_stack'), + service('router'), + ]); + + $services->set('sylius_refund.controller.admin.refund_units', \Sylius\RefundPlugin\Action\Admin\RefundUnitsAction::class) + ->args([ + service('sylius.command_bus'), + service('request_stack'), + service('router'), + service('sylius_refund.creator.request_command'), + service('monolog.logger'), + service('security.csrf.token_manager'), + ]); + + $services->set('sylius_refund.controller.complete_refund_payment', \Sylius\RefundPlugin\Action\CompleteRefundPaymentAction::class) + ->args([ + service('request_stack'), + service('sylius_refund.repository.refund_payment'), + service('sylius.repository.order'), + service('sylius_refund.state_resolver.refund_payment_completed_applier'), + service('router'), + ]); + + $services->set('sylius_refund.controller.admin.send_credit_memo', \Sylius\RefundPlugin\Action\Admin\SendCreditMemoAction::class) + ->args([ + service('sylius.command_bus'), + service('sylius_refund.repository.credit_memo'), + service('request_stack'), + service('router'), + ]); +}; diff --git a/config/services/actions.xml b/config/services/actions.xml deleted file mode 100644 index 8c9745644..000000000 --- a/config/services/actions.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - %sylius_refund.pdf_generator.enabled% - - - - - - - %sylius_refund.pdf_generator.enabled% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/checkers.php b/config/services/checkers.php new file mode 100644 index 000000000..f4871dd5b --- /dev/null +++ b/config/services/checkers.php @@ -0,0 +1,38 @@ +services(); + $parameters = $container->parameters(); + + $services->set('sylius_refund.checker.credit_memo_customer_relation', \Sylius\RefundPlugin\Checker\CreditMemoCustomerRelationChecker::class) + ->args([ + service('sylius.context.customer'), + service('sylius_refund.repository.credit_memo'), + ]); + + $services->alias(\Sylius\RefundPlugin\Checker\CreditMemoCustomerRelationCheckerInterface::class, 'sylius_refund.checker.credit_memo_customer_relation'); + + $services->set('sylius_refund.checker.order_refunding_availability', \Sylius\RefundPlugin\Checker\OrderRefundingAvailabilityChecker::class) + ->args([ + service('sylius.repository.order'), + service('sylius_abstraction.state_machine'), + ]); + + $services->set('sylius_refund.checker.order_refunds_list_availability', \Sylius\RefundPlugin\Checker\OrderRefundsListAvailabilityChecker::class) + ->args([ + service('sylius.repository.order'), + service('sylius_refund.checker.order_refunding_availability'), + ]); + + $services->set('sylius_refund.checker.order_fully_refunded_total', \Sylius\RefundPlugin\Checker\OrderFullyRefundedTotalChecker::class) + ->args([service('sylius_refund.provider.order_refunded_total')]); + + $services->alias(\Sylius\RefundPlugin\Checker\OrderFullyRefundedTotalCheckerInterface::class, 'sylius_refund.checker.order_fully_refunded_total'); + + $services->set('sylius_refund.checker.unit_refunding_availability', \Sylius\RefundPlugin\Checker\UnitRefundingAvailabilityChecker::class) + ->args([service('sylius_refund.provider.remaining_total')]); + + $services->alias(\Sylius\RefundPlugin\Checker\UnitRefundingAvailabilityCheckerInterface::class, 'sylius_refund.checker.unit_refunding_availability'); +}; diff --git a/config/services/checkers.xml b/config/services/checkers.xml deleted file mode 100644 index e2f4fe30a..000000000 --- a/config/services/checkers.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/command_bus.php b/config/services/command_bus.php new file mode 100644 index 000000000..e358702b1 --- /dev/null +++ b/config/services/command_bus.php @@ -0,0 +1,35 @@ +services(); + $parameters = $container->parameters(); + + $services->set('sylius_refund.command_handler.refund_units', \Sylius\RefundPlugin\CommandHandler\RefundUnitsHandler::class) + ->args([ + tagged_iterator('sylius_refund.refunder'), + service('sylius.event_bus'), + service('sylius.repository.order'), + service('sylius_refund.validator.refund_units_command'), + ]) + ->tag('messenger.message_handler', ['bus' => 'sylius.command_bus']); + + $services->set('sylius_refund.command_handler.generate_credit_memo', \Sylius\RefundPlugin\CommandHandler\GenerateCreditMemoHandler::class) + ->args([ + service('sylius_refund.generator.credit_memo'), + service('sylius_refund.manager.credit_memo'), + service('sylius.event_bus'), + service('sylius.repository.order'), + service('sylius_refund.resolver.credit_memo_file'), + '%sylius_refund.pdf_generator.enabled%', + ]) + ->tag('messenger.message_handler', ['bus' => 'sylius.command_bus']); + + $services->set('sylius_refund.command_handler.send_credit_memo', \Sylius\RefundPlugin\CommandHandler\SendCreditMemoHandler::class) + ->args([ + service('sylius_refund.repository.credit_memo'), + service('sylius_refund.email_sender.credit_memo'), + ]) + ->tag('messenger.message_handler', ['bus' => 'sylius.command_bus']); +}; diff --git a/config/services/command_bus.xml b/config/services/command_bus.xml deleted file mode 100644 index 0c4941b22..000000000 --- a/config/services/command_bus.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - %sylius_refund.pdf_generator.enabled% - - - - - - - - - - diff --git a/config/services/converters.php b/config/services/converters.php new file mode 100644 index 000000000..1816c5872 --- /dev/null +++ b/config/services/converters.php @@ -0,0 +1,56 @@ +services(); + $parameters = $container->parameters(); + + $services->set('sylius_refund.converter.line_items', \Sylius\RefundPlugin\Converter\LineItem\CompositeLineItemConverter::class) + ->args([ + tagged_iterator('sylius_refund.line_item_converter'), + service('sylius_refund.filter.unit_refund'), + ]); + + $services->alias(\Sylius\RefundPlugin\Converter\LineItem\LineItemsConverterInterface::class, 'sylius_refund.converter.line_items'); + + $services->alias('sylius_refund.converter.line_items.composite', 'sylius_refund.converter.line_items'); + + $services->set('sylius_refund.converter.request_to_refund_units', \Sylius\RefundPlugin\Converter\Request\RequestToRefundUnitsConverter::class) + ->args([tagged_iterator('sylius_refund.request_to_refund_units_converter')]); + + $services->alias(\Sylius\RefundPlugin\Converter\Request\RequestToRefundUnitsConverterInterface::class, 'sylius_refund.converter.request_to_refund_units'); + + $services->set('sylius_refund.converter.request_to_shipment_refund', \Sylius\RefundPlugin\Converter\Request\RequestToShipmentRefundConverter::class) + ->args([service('sylius_refund.converter.refund_units')]) + ->tag('sylius_refund.request_to_refund_units_converter'); + + $services->alias(\Sylius\RefundPlugin\Converter\Request\RequestToShipmentRefundConverter::class, 'sylius_refund.converter.request_to_shipment_refund'); + + $services->set('sylius_refund.converter.request_to_order_item_unit_refund', \Sylius\RefundPlugin\Converter\Request\RequestToOrderItemUnitRefundConverter::class) + ->args([service('sylius_refund.converter.refund_units')]) + ->tag('sylius_refund.request_to_refund_units_converter'); + + $services->alias(\Sylius\RefundPlugin\Converter\Request\RequestToOrderItemUnitRefundConverter::class, 'sylius_refund.converter.request_to_order_item_unit_refund'); + + $services->set('sylius_refund.converter.line_items.order_item_unit', \Sylius\RefundPlugin\Converter\LineItem\OrderItemUnitLineItemsConverter::class) + ->args([ + service('sylius.repository.order_item_unit'), + service('sylius_refund.provider.tax_rate'), + service('sylius_refund.factory.line_item'), + ]) + ->tag('sylius_refund.line_item_converter'); + + $services->set('sylius_refund.converter.line_items.shipment', \Sylius\RefundPlugin\Converter\LineItem\ShipmentLineItemsConverter::class) + ->args([ + service('sylius.repository.adjustment'), + service('sylius_refund.provider.tax_rate'), + service('sylius_refund.factory.line_item'), + ]) + ->tag('sylius_refund.line_item_converter'); + + $services->set('sylius_refund.converter.refund_units', \Sylius\RefundPlugin\Converter\RefundUnitsConverter::class) + ->args([service('sylius_refund.calculator.unit_refund_total')]); + + $services->alias(\Sylius\RefundPlugin\Converter\RefundUnitsConverterInterface::class, 'sylius_refund.converter.refund_units'); +}; diff --git a/config/services/converters.xml b/config/services/converters.xml deleted file mode 100644 index 5be09f48c..000000000 --- a/config/services/converters.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/creators.php b/config/services/creators.php new file mode 100644 index 000000000..8266931cd --- /dev/null +++ b/config/services/creators.php @@ -0,0 +1,23 @@ +services(); + $parameters = $container->parameters(); + + $services->set('sylius_refund.creator.refund', \Sylius\RefundPlugin\Creator\RefundCreator::class) + ->args([ + service('sylius_refund.factory.refund'), + service('sylius_refund.provider.remaining_total'), + service('sylius.repository.order'), + service('sylius_refund.manager.refund'), + ]); + + $services->alias(\Sylius\RefundPlugin\Creator\RefundCreatorInterface::class, 'sylius_refund.creator.refund'); + + $services->set('sylius_refund.creator.request_command', \Sylius\RefundPlugin\Creator\RefundUnitsCommandCreator::class) + ->args([service('sylius_refund.converter.request_to_refund_units')]); + + $services->alias(\Sylius\RefundPlugin\Creator\RequestCommandCreatorInterface::class, 'sylius_refund.creator.request_command'); +}; diff --git a/config/services/creators.xml b/config/services/creators.xml deleted file mode 100644 index b325320bb..000000000 --- a/config/services/creators.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/event_bus.php b/config/services/event_bus.php new file mode 100644 index 000000000..c176ee219 --- /dev/null +++ b/config/services/event_bus.php @@ -0,0 +1,41 @@ +services(); + $parameters = $container->parameters(); + + $services->set('sylius_refund.listener.credit_memo_generated', \Sylius\RefundPlugin\Listener\CreditMemoGeneratedEventListener::class) + ->public() + ->args([service('sylius.command_bus')]) + ->tag('messenger.message_handler', ['bus' => 'sylius.event_bus']); + + $services->set('sylius_refund.listener.unit_refunded', \Sylius\RefundPlugin\Listener\UnitRefundedEventListener::class) + ->public() + ->args([service('sylius_refund.state_resolver.order_partially_refunded')]) + ->tag('messenger.message_handler', ['bus' => 'sylius.event_bus']); + + $services->set('sylius_refund.process_manager.units_refunded', \Sylius\RefundPlugin\ProcessManager\UnitsRefundedProcessManager::class) + ->public() + ->args([tagged_iterator('sylius_refund.units_refunded.process_step')]) + ->tag('messenger.message_handler', ['bus' => 'sylius.event_bus']); + + $services->alias(\Sylius\RefundPlugin\ProcessManager\UnitsRefundedProcessManagerInterface::class, 'sylius_refund.process_manager.units_refunded'); + + $services->set('sylius_refund.process_manager.refund_payment', \Sylius\RefundPlugin\ProcessManager\RefundPaymentProcessManager::class) + ->args([ + service('sylius_refund.state_resolver.order_fully_refunded'), + service('sylius_refund.provider.related_payment_id'), + service('sylius_refund.factory.refund_payment'), + service('sylius.repository.order'), + service('sylius.repository.payment_method'), + service('doctrine.orm.default_entity_manager'), + service('sylius.event_bus'), + ]) + ->tag('sylius_refund.units_refunded.process_step', ['priority' => 50]); + + $services->set('sylius_refund.process_manager.credit_memo', \Sylius\RefundPlugin\ProcessManager\CreditMemoProcessManager::class) + ->args([service('sylius.command_bus')]) + ->tag('sylius_refund.units_refunded.process_step', ['priority' => 100]); +}; diff --git a/config/services/event_bus.xml b/config/services/event_bus.xml deleted file mode 100644 index f6aa78590..000000000 --- a/config/services/event_bus.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/factories.php b/config/services/factories.php new file mode 100644 index 000000000..bc9c95d30 --- /dev/null +++ b/config/services/factories.php @@ -0,0 +1,39 @@ +services(); + $parameters = $container->parameters(); + + $services->set('sylius_refund.factory.credit_memo_sequence', \Sylius\RefundPlugin\Factory\CreditMemoSequenceFactory::class); + + $services->alias(\Sylius\RefundPlugin\Factory\CreditMemoSequenceFactoryInterface::class, 'sylius_refund.factory.credit_memo_sequence'); + + $services->set('sylius_refund.factory.refund_type', \Sylius\RefundPlugin\Factory\RefundTypeFactory::class) + ->args(['%sylius_refund.refund_type%']); + + $services->alias(\Sylius\RefundPlugin\Factory\RefundTypeFactoryInterface::class, 'sylius_refund.factory.refund_type'); + + $services->set('sylius_refund.factory.line_item', \Sylius\RefundPlugin\Factory\LineItemFactory::class) + ->args(['%sylius_refund.model.line_item.class%']); + + $services->alias(\Sylius\RefundPlugin\Factory\LineItemFactoryInterface::class, 'sylius_refund.factory.line_item'); + + $services->set('sylius_refund.custom_factory.credit_memo', \Sylius\RefundPlugin\Factory\CreditMemoFactory::class) + ->decorate('sylius_refund.factory.credit_memo', null, 256) + ->args([ + service('.inner'), + service('sylius_refund.generator.credit_memo_identifier'), + service('sylius_refund.generator.credit_memo_number'), + service(\Sylius\RefundPlugin\Provider\CurrentDateTimeImmutableProviderInterface::class), + ]); + + $services->set('sylius_refund.custom_factory.shop_billing_data', \Sylius\RefundPlugin\Factory\ShopBillingDataFactory::class) + ->decorate('sylius_refund.factory.shop_billing_data', null, 256) + ->args([service('.inner')]); + + $services->set('sylius_refund.custom_factory.customer_billing_data', \Sylius\RefundPlugin\Factory\CustomerBillingDataFactory::class) + ->decorate('sylius_refund.factory.customer_billing_data', null, 256) + ->args([service('.inner')]); +}; diff --git a/config/services/factories.xml b/config/services/factories.xml deleted file mode 100644 index aba719e7e..000000000 --- a/config/services/factories.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - %sylius_refund.refund_type% - - - - - %sylius_refund.model.line_item.class% - - - - - - - - - - - - - - - - - - - diff --git a/config/services/filters.php b/config/services/filters.php new file mode 100644 index 000000000..26aedf5c2 --- /dev/null +++ b/config/services/filters.php @@ -0,0 +1,12 @@ +services(); + $parameters = $container->parameters(); + + $services->set('sylius_refund.filter.unit_refund', \Sylius\RefundPlugin\Filter\UnitRefundFilter::class); + + $services->alias(\Sylius\RefundPlugin\Filter\UnitRefundFilterInterface::class, 'sylius_refund.filter.unit_refund'); +}; diff --git a/config/services/filters.xml b/config/services/filters.xml deleted file mode 100644 index ee832b969..000000000 --- a/config/services/filters.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - diff --git a/config/services/generators.php b/config/services/generators.php new file mode 100644 index 000000000..a2bdb821e --- /dev/null +++ b/config/services/generators.php @@ -0,0 +1,70 @@ +services(); + $parameters = $container->parameters(); + + $services->set('sylius_refund.generator.credit_memo_number', \Sylius\RefundPlugin\Generator\SequentialCreditMemoNumberGenerator::class) + ->args([ + service('sylius_refund.repository.credit_memo_sequence'), + service('sylius_refund.factory.credit_memo_sequence'), + service('doctrine.orm.entity_manager'), + ]); + + $services->alias(\Sylius\RefundPlugin\Generator\CreditMemoNumberGeneratorInterface::class, 'sylius_refund.generator.credit_memo_number'); + + $services->set('sylius_refund.generator.credit_memo', \Sylius\RefundPlugin\Generator\CreditMemoGenerator::class) + ->args([ + service('sylius_refund.converter.line_items'), + service('sylius_refund.generator.tax_items'), + service('sylius_refund.factory.credit_memo'), + service('sylius_refund.factory.customer_billing_data'), + service('sylius_refund.factory.shop_billing_data'), + ]); + + $services->alias(\Sylius\RefundPlugin\Generator\CreditMemoGeneratorInterface::class, 'sylius_refund.generator.credit_memo'); + + $services->set('sylius_refund.generator.credit_memo_file_name', \Sylius\RefundPlugin\Generator\CreditMemoFileNameGenerator::class); + + $services->alias(\Sylius\RefundPlugin\Generator\CreditMemoFileNameGeneratorInterface::class, 'sylius_refund.generator.credit_memo_file_name'); + + $services->set('sylius_refund.generator.credit_memo_pdf_file', \Sylius\RefundPlugin\Generator\CreditMemoPdfFileGenerator::class) + ->args([ + service('sylius_refund.repository.credit_memo'), + service('file_locator'), + '@SyliusRefundPlugin/download/credit_memo.html.twig', + '%sylius_refund.template.logo_file%', + service('sylius_refund.generator.twig_to_pdf'), + service('sylius_refund.generator.credit_memo_file_name'), + ]); + + $services->alias(\Sylius\RefundPlugin\Generator\CreditMemoPdfFileGeneratorInterface::class, 'sylius_refund.generator.credit_memo_pdf_file'); + + $services->set('sylius_refund.generator.tax_items', \Sylius\RefundPlugin\Generator\TaxItemsGenerator::class); + + $services->alias(\Sylius\RefundPlugin\Generator\TaxItemsGeneratorInterface::class, 'sylius_refund.generator.tax_items'); + + $services->set('sylius_refund.generator.credit_memo_identifier', \Sylius\RefundPlugin\Generator\UuidCreditMemoIdentifierGenerator::class); + + $services->alias(\Sylius\RefundPlugin\Generator\CreditMemoIdentifierGeneratorInterface::class, 'sylius_refund.generator.credit_memo_identifier'); + + $services->set('sylius_refund.generator.pdf_options', \Sylius\RefundPlugin\Generator\PdfOptionsGenerator::class) + ->args([ + service('file_locator'), + '%knp_snappy.pdf.options%', + '%sylius_refund.pdf_generator.allowed_files%', + ]); + + $services->alias(\Sylius\RefundPlugin\Generator\PdfOptionsGeneratorInterface::class, 'sylius_refund.generator.pdf_options'); + + $services->set('sylius_refund.generator.twig_to_pdf', \Sylius\RefundPlugin\Generator\TwigToPdfGenerator::class) + ->args([ + service('twig'), + service('knp_snappy.pdf'), + service('sylius_refund.generator.pdf_options'), + ]); + + $services->alias(\Sylius\RefundPlugin\Generator\TwigToPdfGeneratorInterface::class, 'sylius_refund.generator.twig_to_pdf'); +}; diff --git a/config/services/generators.xml b/config/services/generators.xml deleted file mode 100644 index 9755038f0..000000000 --- a/config/services/generators.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @SyliusRefundPlugin/download/credit_memo.html.twig - %sylius_refund.template.logo_file% - - - - - - - - - - - - - - %knp_snappy.pdf.options% - %sylius_refund.pdf_generator.allowed_files% - - - - - - - - - - - diff --git a/config/services/listeners.php b/config/services/listeners.php new file mode 100644 index 000000000..7dde333cd --- /dev/null +++ b/config/services/listeners.php @@ -0,0 +1,14 @@ +services(); + $parameters = $container->parameters(); + + $services->defaults() + ->public(); + + $services->set('sylius_refund.listener.admin_main_menu', \Sylius\RefundPlugin\Menu\AdminMainMenuListener::class) + ->tag('kernel.event_listener', ['event' => 'sylius.menu.admin.main', 'method' => 'addCreditMemosSection']); +}; diff --git a/config/services/listeners.xml b/config/services/listeners.xml deleted file mode 100644 index 2b220e0f3..000000000 --- a/config/services/listeners.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - diff --git a/config/services/providers.php b/config/services/providers.php new file mode 100644 index 000000000..56dc808d0 --- /dev/null +++ b/config/services/providers.php @@ -0,0 +1,71 @@ +services(); + $parameters = $container->parameters(); + $parameters->set('sylius_refund.supported_gateways', ['offline']); + + $services->set('sylius_refund.provider.credit_memo_file', \Sylius\RefundPlugin\Provider\CreditMemoFileProvider::class) + ->args([ + service('sylius_refund.generator.credit_memo_file_name'), + service('sylius_refund.manager.credit_memo_file'), + ]); + + $services->alias(\Sylius\RefundPlugin\Provider\CreditMemoFileProviderInterface::class, 'sylius_refund.provider.credit_memo_file'); + + $services->set('sylius_refund.provider.refunded_shipment_fee', \Sylius\RefundPlugin\Provider\RefundedShipmentFeeProvider::class) + ->args([service('sylius.repository.adjustment')]); + + $services->alias(\Sylius\RefundPlugin\Provider\RefundedShipmentFeeProviderInterface::class, 'sylius_refund.provider.refunded_shipment_fee'); + + $services->set('sylius_refund.provider.order_refunded_total', \Sylius\RefundPlugin\Provider\OrderRefundedTotalProvider::class) + ->args([ + service('sylius_refund.repository.refund'), + service('sylius.repository.order_item_unit'), + ]); + + $services->alias(\Sylius\RefundPlugin\Provider\OrderRefundedTotalProviderInterface::class, 'sylius_refund.provider.order_refunded_total'); + + $services->set('sylius_refund.provider.current_date_time_immutable', \Sylius\RefundPlugin\Provider\CurrentDateTimeImmutableProvider::class); + + $services->alias(\Sylius\RefundPlugin\Provider\CurrentDateTimeImmutableProviderInterface::class, 'sylius_refund.provider.current_date_time_immutable'); + + $services->set('sylius_refund.provider.order_item_unit_total', \Sylius\RefundPlugin\Provider\OrderItemUnitTotalProvider::class) + ->args([service('sylius.repository.order_item_unit')]) + ->tag('sylius_refund.refund_unit_total_provider'); + + $services->set('sylius_refund.provider.shipment_total', \Sylius\RefundPlugin\Provider\ShipmentTotalProvider::class) + ->args([service('sylius.repository.adjustment')]) + ->tag('sylius_refund.refund_unit_total_provider'); + + $services->set('sylius_refund.provider.remaining_total', \Sylius\RefundPlugin\Provider\RemainingTotalProvider::class) + ->args([ + tagged_locator('sylius_refund.refund_unit_total_provider', indexAttribute: 'refund_type', defaultIndexMethod: 'refundType'), + service('sylius_refund.repository.refund'), + ]); + + $services->alias(\Sylius\RefundPlugin\Provider\RemainingTotalProviderInterface::class, 'sylius_refund.provider.remaining_total'); + + $services->set('sylius_refund.provider.unit_refunded_total', \Sylius\RefundPlugin\Provider\UnitRefundedTotalProvider::class) + ->args([service('sylius_refund.repository.refund')]); + + $services->alias(\Sylius\RefundPlugin\Provider\UnitRefundedTotalProviderInterface::class, 'sylius_refund.provider.unit_refunded_total'); + + $services->set('sylius_refund.provider.related_payment_id', \Sylius\RefundPlugin\Provider\DefaultRelatedPaymentIdProvider::class); + + $services->alias(\Sylius\RefundPlugin\Provider\RelatedPaymentIdProviderInterface::class, 'sylius_refund.provider.related_payment_id'); + + $services->set('sylius_refund.provider.refund_payment_methods', \Sylius\RefundPlugin\Provider\SupportedRefundPaymentMethodsProvider::class) + ->args([ + service('sylius.repository.payment_method'), + '%sylius_refund.supported_gateways%', + ]); + + $services->alias(\Sylius\RefundPlugin\Provider\RefundPaymentMethodsProviderInterface::class, 'sylius_refund.provider.refund_payment_methods'); + + $services->set('sylius_refund.provider.tax_rate', \Sylius\RefundPlugin\Provider\TaxRateProvider::class); + + $services->alias(\Sylius\RefundPlugin\Provider\TaxRateProviderInterface::class, 'sylius_refund.provider.tax_rate'); +}; diff --git a/config/services/providers.xml b/config/services/providers.xml deleted file mode 100644 index ac0d194d3..000000000 --- a/config/services/providers.xml +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - offline - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %sylius_refund.supported_gateways% - - - - - - - diff --git a/config/services/queries.php b/config/services/queries.php new file mode 100644 index 000000000..7a361283c --- /dev/null +++ b/config/services/queries.php @@ -0,0 +1,14 @@ +services(); + $parameters = $container->parameters(); + + $services->set('sylius_refund.doctrine.orm.query.count_order_item_unit_refunds_belonging_to_order', \Sylius\RefundPlugin\Doctrine\ORM\CountOrderItemUnitRefundsBelongingToOrderQuery::class) + ->args([service('sylius.repository.order_item_unit')]); + + $services->set('sylius_refund.doctrine.orm.query.count_shipment_refunds_belonging_to_order', \Sylius\RefundPlugin\Doctrine\ORM\CountShipmentRefundsBelongingToOrderQuery::class) + ->args([service('sylius.repository.adjustment')]); +}; diff --git a/config/services/queries.xml b/config/services/queries.xml deleted file mode 100644 index 1377e7538..000000000 --- a/config/services/queries.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/config/services/resolvers.php b/config/services/resolvers.php new file mode 100644 index 000000000..cf516e4a6 --- /dev/null +++ b/config/services/resolvers.php @@ -0,0 +1,23 @@ +services(); + $parameters = $container->parameters(); + + $services->set('sylius_refund.resolver.credit_memo_file', \Sylius\RefundPlugin\Resolver\CreditMemoFileResolver::class) + ->args([ + service('sylius_refund.repository.credit_memo'), + service('sylius_refund.provider.credit_memo_file'), + service('sylius_refund.generator.credit_memo_pdf_file'), + service('sylius_refund.manager.credit_memo_file'), + ]); + + $services->alias(\Sylius\RefundPlugin\Resolver\CreditMemoFileResolverInterface::class, 'sylius_refund.resolver.credit_memo_file'); + + $services->set('sylius_refund.resolver.credit_memo_file_path', \Sylius\RefundPlugin\Resolver\CreditMemoFilePathResolver::class) + ->args(['%sylius_refund.credit_memo_save_path%']); + + $services->alias(\Sylius\RefundPlugin\Resolver\CreditMemoFilePathResolverInterface::class, 'sylius_refund.resolver.credit_memo_file_path'); +}; diff --git a/config/services/resolvers.xml b/config/services/resolvers.xml deleted file mode 100644 index 1296a5da2..000000000 --- a/config/services/resolvers.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - %sylius_refund.credit_memo_save_path% - - - - diff --git a/config/services/state_resolvers.php b/config/services/state_resolvers.php new file mode 100644 index 000000000..00979fe25 --- /dev/null +++ b/config/services/state_resolvers.php @@ -0,0 +1,35 @@ +services(); + $parameters = $container->parameters(); + + $services->set('sylius_refund.state_resolver.order_fully_refunded', \Sylius\RefundPlugin\StateResolver\OrderFullyRefundedStateResolver::class) + ->args([ + service('sylius_abstraction.state_machine'), + service('sylius.manager.order'), + service('sylius_refund.checker.order_fully_refunded_total'), + service('sylius.repository.order'), + ]); + + $services->alias(\Sylius\RefundPlugin\StateResolver\OrderFullyRefundedStateResolverInterface::class, 'sylius_refund.state_resolver.order_fully_refunded'); + + $services->set('sylius_refund.state_resolver.order_partially_refunded', \Sylius\RefundPlugin\StateResolver\OrderPartiallyRefundedStateResolver::class) + ->args([ + service('sylius.repository.order'), + service('sylius_abstraction.state_machine'), + service('sylius.manager.order'), + ]); + + $services->alias(\Sylius\RefundPlugin\StateResolver\OrderPartiallyRefundedStateResolverInterface::class, 'sylius_refund.state_resolver.order_partially_refunded'); + + $services->set('sylius_refund.state_resolver.refund_payment_completed_applier', \Sylius\RefundPlugin\StateResolver\RefundPaymentCompletedStateApplier::class) + ->args([ + service('sylius_abstraction.state_machine'), + service('sylius_refund.manager.refund_payment'), + ]); + + $services->alias(\Sylius\RefundPlugin\StateResolver\RefundPaymentCompletedStateApplierInterface::class, 'sylius_refund.state_resolver.refund_payment_completed_applier'); +}; diff --git a/config/services/state_resolvers.xml b/config/services/state_resolvers.xml deleted file mode 100644 index a28186272..000000000 --- a/config/services/state_resolvers.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/twig_components.php b/config/services/twig_components.php new file mode 100644 index 000000000..d2baf1b3e --- /dev/null +++ b/config/services/twig_components.php @@ -0,0 +1,13 @@ +services(); + $parameters = $container->parameters(); + + $services->set('sylius_refund.twig_component.customer_credit_memos', \Sylius\RefundPlugin\Twig\Component\OrderCreditMemosComponent::class) + ->args([service('sylius_refund.repository.credit_memo')]) + ->tag('sylius.twig_component', ['key' => 'sylius_refund:shop:account:credit_memos']) + ->tag('sylius.twig_component', ['key' => 'sylius_refund:admin:credit_memos']); +}; diff --git a/config/services/twig_components.xml b/config/services/twig_components.xml deleted file mode 100644 index 2554c076b..000000000 --- a/config/services/twig_components.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - diff --git a/config/services/validators.php b/config/services/validators.php new file mode 100644 index 000000000..4655755ab --- /dev/null +++ b/config/services/validators.php @@ -0,0 +1,36 @@ +services(); + $parameters = $container->parameters(); + + $services->set('sylius_refund.validator.refund_units_command', \Sylius\RefundPlugin\Validator\RefundUnitsCommandValidator::class) + ->args([ + service('sylius_refund.checker.order_refunding_availability'), + service('sylius_refund.validator.refund_amount'), + tagged_iterator('sylius_refund.validator.unit_refunds_belonging_to_order'), + ]); + + $services->alias(\Sylius\RefundPlugin\Validator\RefundUnitsCommandValidatorInterface::class, 'sylius_refund.validator.refund_units_command'); + + $services->set('sylius_refund.validator.order_item_unit_refunds_belonging_to_order', \Sylius\RefundPlugin\Validator\OrderItemUnitRefundsBelongingToOrderValidator::class) + ->args([ + service('sylius_refund.filter.unit_refund'), + service('sylius_refund.doctrine.orm.query.count_order_item_unit_refunds_belonging_to_order'), + ]) + ->tag('sylius_refund.validator.unit_refunds_belonging_to_order'); + + $services->set('sylius_refund.validator.shipment_refunds_belonging_to_order', \Sylius\RefundPlugin\Validator\ShipmentRefundsBelongingToOrderValidator::class) + ->args([ + service('sylius_refund.filter.unit_refund'), + service('sylius_refund.doctrine.orm.query.count_shipment_refunds_belonging_to_order'), + ]) + ->tag('sylius_refund.validator.unit_refunds_belonging_to_order'); + + $services->set('sylius_refund.validator.refund_amount', \Sylius\RefundPlugin\Validator\RefundAmountValidator::class) + ->args([service('sylius_refund.provider.remaining_total')]); + + $services->alias(\Sylius\RefundPlugin\Validator\RefundAmountValidatorInterface::class, 'sylius_refund.validator.refund_amount'); +}; diff --git a/config/services/validators.xml b/config/services/validators.xml deleted file mode 100644 index a4f146649..000000000 --- a/config/services/validators.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/DependencyInjection/SyliusRefundExtension.php b/src/DependencyInjection/SyliusRefundExtension.php index 1752bdf83..9cf89d0e4 100644 --- a/src/DependencyInjection/SyliusRefundExtension.php +++ b/src/DependencyInjection/SyliusRefundExtension.php @@ -24,7 +24,7 @@ use Symfony\Component\Config\FileLocator; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface; -use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; +use Symfony\Component\DependencyInjection\Loader\PhpFileLoader; final class SyliusRefundExtension extends AbstractResourceExtension implements PrependExtensionInterface { @@ -38,8 +38,8 @@ public function load(array $configs, ContainerBuilder $container): void $configs = $this->processConfiguration($configuration, $configs); - $loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../../config')); - $loader->load('services.xml'); + $loader = new PhpFileLoader($container, new FileLocator(__DIR__ . '/../../config')); + $loader->load('services.php'); $this->tagsAutoconfiguration($container, [ 'sylius_refund.units_refunded.process_step' => UnitsRefundedProcessStepInterface::class, diff --git a/tests/Behat/Resources/services.php b/tests/Behat/Resources/services.php new file mode 100644 index 000000000..e3b347406 --- /dev/null +++ b/tests/Behat/Resources/services.php @@ -0,0 +1,135 @@ +services(); + $parameters = $container->parameters(); + $parameters->set('sylius.behat.page.admin.order.show.class', \Tests\Sylius\RefundPlugin\Behat\Page\Admin\Order\ShowPage::class); + $parameters->set('sylius.behat.page.shop.order.show.class', \Tests\Sylius\RefundPlugin\Behat\Page\Shop\Order\ShowPage::class); + + $services->defaults() + ->public(); + + $services->set(\Tests\Sylius\RefundPlugin\Behat\Page\Admin\OrderRefundsPage::class) + ->parent('sylius.behat.symfony_page'); + + $services->set(\Tests\Sylius\RefundPlugin\Behat\Page\Admin\CreditMemoDetailsPage::class) + ->parent('sylius.behat.symfony_page') + ->args([service('sylius.behat.table_accessor')]); + + $services->set(\Tests\Sylius\RefundPlugin\Behat\Page\Admin\CreditMemoIndexPage::class) + ->parent('sylius.behat.page.admin.crud.index') + ->args(['sylius_refund_admin_credit_memo_index']); + + $services->set(\FriendsOfBehat\PageObjectExtension\Element\Element::class) + ->private() + ->abstract() + ->args([ + service('behat.mink.default_session'), + service('behat.mink.parameters'), + ]); + + $services->set(\Tests\Sylius\RefundPlugin\Behat\Element\PdfDownloadElement::class) + ->private() + ->parent(\FriendsOfBehat\PageObjectExtension\Element\Element::class); + + $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Application\RefundingContext::class) + ->args([ + service('sylius.repository.order'), + service('sylius_refund.repository.refund'), + service('sylius_refund.provider.remaining_total'), + service('sylius.command_bus'), + service('sylius.behat.email_checker'), + ]); + + $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Application\CreditMemoContext::class) + ->args([ + service('sylius_refund.repository.credit_memo'), + service('sylius_refund.provider.current_date_time_immutable'), + '%sylius_refund.credit_memo_save_path%', + ]); + + $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Ui\ManagingOrdersContext::class) + ->args([ + service('sylius.behat.page.admin.order.show'), + service('sylius.behat.page.admin.order.index'), + service('sylius.behat.notification_checker.shop'), + ]); + + $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Ui\RefundingContext::class) + ->args([ + service(\Tests\Sylius\RefundPlugin\Behat\Page\Admin\OrderRefundsPage::class), + service('sylius.behat.notification_checker.admin'), + service('sylius.behat.email_checker'), + ]); + + $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Ui\CreditMemoContext::class) + ->args([ + service('sylius.behat.page.admin.order.show'), + service(\Tests\Sylius\RefundPlugin\Behat\Page\Admin\CreditMemoIndexPage::class), + service(\Tests\Sylius\RefundPlugin\Behat\Page\Admin\CreditMemoDetailsPage::class), + service(\Tests\Sylius\RefundPlugin\Behat\Element\PdfDownloadElement::class), + service('sylius_refund.repository.credit_memo'), + service('sylius_refund.provider.current_date_time_immutable'), + ]); + + $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Setup\RefundingContext::class) + ->args([ + service('sylius.repository.order'), + service('sylius.command_bus'), + service(\Tests\Sylius\RefundPlugin\Behat\Services\Generator\FailedCreditMemoGenerator::class), + service(\Tests\Sylius\RefundPlugin\Behat\Services\Factory\FailedRefundPaymentFactory::class), + ]); + + $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Setup\OrderContext::class) + ->args([ + service('sylius.manager.order'), + service('sylius.behat.shared_storage'), + service('sylius_abstraction.state_machine'), + ]); + + $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Setup\PaymentContext::class) + ->args([ + service('sylius_abstraction.state_machine'), + service('sylius.behat.shared_storage'), + ]); + + $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Transform\OrderContext::class) + ->args([service('sylius.repository.order')]); + + $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Transform\PriceContext::class); + + $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Ui\Shop\Customer\CreditMemoContext::class) + ->args([ + service('sylius.behat.page.shop.order.show'), + service(\Tests\Sylius\RefundPlugin\Behat\Element\PdfDownloadElement::class), + ]); + + $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Setup\ChannelContext::class) + ->args([ + service('sylius.behat.shared_storage'), + service('sylius.behat.factory.default_united_states_channel'), + service('sylius.behat.factory.default_channel'), + service('sylius.manager.channel'), + ]); + + $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Application\EmailsContext::class) + ->args([service('sylius.behat.email_checker')]); + + $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Setup\ProductContext::class) + ->args([service('sylius.behat.context.setup.product')]); + + $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Hook\CreditMemosContext::class) + ->args(['%sylius_refund.credit_memo_save_path%']); + + $services->set(\Tests\Sylius\RefundPlugin\Behat\Services\Factory\FailedRefundPaymentFactory::class) + ->private() + ->decorate('sylius_refund.factory.refund_payment') + ->args([service('.inner')]); + + $services->set(\Tests\Sylius\RefundPlugin\Behat\Services\Generator\FailedCreditMemoGenerator::class) + ->private() + ->decorate('sylius_refund.generator.credit_memo') + ->args([service('.inner')]); +}; diff --git a/tests/Behat/Resources/services.xml b/tests/Behat/Resources/services.xml deleted file mode 100644 index 579220efe..000000000 --- a/tests/Behat/Resources/services.xml +++ /dev/null @@ -1,129 +0,0 @@ - - - - - Tests\Sylius\RefundPlugin\Behat\Page\Admin\Order\ShowPage - Tests\Sylius\RefundPlugin\Behat\Page\Shop\Order\ShowPage - - - - - - - - - - - sylius_refund_admin_credit_memo_index - - - - - - - - - - - - - - - - - - - - %sylius_refund.credit_memo_save_path% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %sylius_refund.credit_memo_save_path% - - - - - - - - - - - diff --git a/tests/TestApplication/config/services_test.php b/tests/TestApplication/config/services_test.php index 516df18fc..031158122 100644 --- a/tests/TestApplication/config/services_test.php +++ b/tests/TestApplication/config/services_test.php @@ -9,7 +9,7 @@ if (str_starts_with($env, 'test')) { $container->import('../../../vendor/sylius/sylius/src/Sylius/Behat/Resources/config/services.xml'); - $container->import('@SyliusRefundPlugin/tests/Behat/Resources/services.xml'); + $container->import('@SyliusRefundPlugin/tests/Behat/Resources/services.php'); } if (filter_var($_ENV['TEST_SYLIUS_REFUND_PDF_GENERATION_DISABLED'], FILTER_VALIDATE_BOOLEAN)) { From 72cc75007da491162055aca1c3d791dd1a842cb8 Mon Sep 17 00:00:00 2001 From: Mateusz Date: Tue, 21 Jul 2026 08:49:30 +0200 Subject: [PATCH 2/3] [Maintenance][CI] Restore knp_snappy binary wiring in test app config --- tests/TestApplication/config/config.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/TestApplication/config/config.yaml b/tests/TestApplication/config/config.yaml index 18c891fe6..cd2d45697 100644 --- a/tests/TestApplication/config/config.yaml +++ b/tests/TestApplication/config/config.yaml @@ -5,3 +5,9 @@ imports: twig: paths: '%kernel.project_dir%/../../../tests/TestApplication/templates': ~ + +knp_snappy: + pdf: + enabled: true + binary: '%env(resolve:WKHTMLTOPDF_PATH)%' + options: [] From ffb279efc944ef67a728cee70a83cd03a6492a3f Mon Sep 17 00:00:00 2001 From: Mateusz Date: Fri, 14 Aug 2026 12:39:05 +0200 Subject: [PATCH 3/3] Replace inline FQCNs with use statements in PHP service definitions --- config/services.php | 46 ++++++++++----- config/services/actions.php | 19 ++++-- config/services/checkers.php | 25 +++++--- config/services/command_bus.php | 10 +++- config/services/converters.php | 35 ++++++++---- config/services/creators.php | 13 +++-- config/services/event_bus.php | 19 ++++-- config/services/factories.php | 31 ++++++---- config/services/filters.php | 7 ++- config/services/generators.php | 49 ++++++++++------ config/services/listeners.php | 4 +- config/services/providers.php | 61 +++++++++++++------- config/services/queries.php | 7 ++- config/services/resolvers.php | 13 +++-- config/services/state_resolvers.php | 19 ++++-- config/services/twig_components.php | 4 +- config/services/validators.php | 19 ++++-- tests/Behat/Resources/services.php | 89 ++++++++++++++++++----------- 18 files changed, 316 insertions(+), 154 deletions(-) diff --git a/config/services.php b/config/services.php index 3eb928775..79457cade 100644 --- a/config/services.php +++ b/config/services.php @@ -2,6 +2,22 @@ namespace Symfony\Component\DependencyInjection\Loader\Configurator; +use Doctrine\ORM\EntityRepository; +use Sylius\RefundPlugin\Calculator\UnitRefundTotalCalculator; +use Sylius\RefundPlugin\Calculator\UnitRefundTotalCalculatorInterface; +use Sylius\RefundPlugin\Entity\CreditMemoSequence; +use Sylius\RefundPlugin\Manager\CreditMemoFileManager; +use Sylius\RefundPlugin\Manager\CreditMemoFileManagerInterface; +use Sylius\RefundPlugin\Provider\UnitRefundedTotalProviderInterface; +use Sylius\RefundPlugin\Refunder\OrderItemUnitsRefunder; +use Sylius\RefundPlugin\Refunder\OrderShipmentsRefunder; +use Sylius\RefundPlugin\ResponseBuilder\CreditMemoFileResponseBuilder; +use Sylius\RefundPlugin\ResponseBuilder\CreditMemoFileResponseBuilderInterface; +use Sylius\RefundPlugin\Sender\CreditMemoEmailSender; +use Sylius\RefundPlugin\Sender\CreditMemoEmailSenderInterface; +use Sylius\RefundPlugin\Twig\OrderRefundAvailabilityExtension; +use Sylius\RefundPlugin\Twig\OrderRefundsExtension; + return static function (ContainerConfigurator $container) { $services = $container->services(); $parameters = $container->parameters(); @@ -13,12 +29,12 @@ $services->defaults() ->public(); - $services->set('sylius_refund.calculator.unit_refund_total', \Sylius\RefundPlugin\Calculator\UnitRefundTotalCalculator::class) + $services->set('sylius_refund.calculator.unit_refund_total', UnitRefundTotalCalculator::class) ->args([service('sylius_refund.provider.remaining_total')]); - $services->alias(\Sylius\RefundPlugin\Calculator\UnitRefundTotalCalculatorInterface::class, 'sylius_refund.calculator.unit_refund_total'); + $services->alias(UnitRefundTotalCalculatorInterface::class, 'sylius_refund.calculator.unit_refund_total'); - $services->set('sylius_refund.refunder.order_item_units', \Sylius\RefundPlugin\Refunder\OrderItemUnitsRefunder::class) + $services->set('sylius_refund.refunder.order_item_units', OrderItemUnitsRefunder::class) ->args([ service('sylius_refund.creator.refund'), service('sylius.event_bus'), @@ -26,7 +42,7 @@ ]) ->tag('sylius_refund.refunder'); - $services->set('sylius_refund.refunder.order_shipments', \Sylius\RefundPlugin\Refunder\OrderShipmentsRefunder::class) + $services->set('sylius_refund.refunder.order_shipments', OrderShipmentsRefunder::class) ->args([ service('sylius_refund.creator.refund'), service('sylius.event_bus'), @@ -34,10 +50,10 @@ ]) ->tag('sylius_refund.refunder'); - $services->set('sylius_refund.twig.extension.order_refunds', \Sylius\RefundPlugin\Twig\OrderRefundsExtension::class) + $services->set('sylius_refund.twig.extension.order_refunds', OrderRefundsExtension::class) ->args([ service('sylius_refund.provider.order_refunded_total'), - service(\Sylius\RefundPlugin\Provider\UnitRefundedTotalProviderInterface::class), + service(UnitRefundedTotalProviderInterface::class), service('sylius_refund.checker.unit_refunding_availability'), service('sylius.repository.order'), service('sylius_refund.repository.refund_payment'), @@ -45,15 +61,15 @@ ]) ->tag('twig.extension'); - $services->set('sylius_refund.twig.extension.order_refund_availability', \Sylius\RefundPlugin\Twig\OrderRefundAvailabilityExtension::class) + $services->set('sylius_refund.twig.extension.order_refund_availability', OrderRefundAvailabilityExtension::class) ->args([service('sylius_refund.checker.order_refunds_list_availability')]) ->tag('twig.extension'); - $services->set('sylius_refund.repository.credit_memo_sequence', \Doctrine\ORM\EntityRepository::class) - ->args([\Sylius\RefundPlugin\Entity\CreditMemoSequence::class]) + $services->set('sylius_refund.repository.credit_memo_sequence', EntityRepository::class) + ->args([CreditMemoSequence::class]) ->factory([service('doctrine.orm.entity_manager'), 'getRepository']); - $services->set('sylius_refund.email_sender.credit_memo', \Sylius\RefundPlugin\Sender\CreditMemoEmailSender::class) + $services->set('sylius_refund.email_sender.credit_memo', CreditMemoEmailSender::class) ->args([ service('sylius.email_sender'), '%sylius_refund.pdf_generator.enabled%', @@ -61,14 +77,14 @@ service('sylius_refund.resolver.credit_memo_file_path'), ]); - $services->alias(\Sylius\RefundPlugin\Sender\CreditMemoEmailSenderInterface::class, 'sylius_refund.email_sender.credit_memo'); + $services->alias(CreditMemoEmailSenderInterface::class, 'sylius_refund.email_sender.credit_memo'); - $services->set('sylius_refund.response_builder.credit_memo_file', \Sylius\RefundPlugin\ResponseBuilder\CreditMemoFileResponseBuilder::class); + $services->set('sylius_refund.response_builder.credit_memo_file', CreditMemoFileResponseBuilder::class); - $services->alias(\Sylius\RefundPlugin\ResponseBuilder\CreditMemoFileResponseBuilderInterface::class, 'sylius_refund.response_builder.credit_memo_file'); + $services->alias(CreditMemoFileResponseBuilderInterface::class, 'sylius_refund.response_builder.credit_memo_file'); - $services->set('sylius_refund.manager.credit_memo_file', \Sylius\RefundPlugin\Manager\CreditMemoFileManager::class) + $services->set('sylius_refund.manager.credit_memo_file', CreditMemoFileManager::class) ->args([service('gaufrette.sylius_refund_credit_memo_filesystem')]); - $services->alias(\Sylius\RefundPlugin\Manager\CreditMemoFileManagerInterface::class, 'sylius_refund.manager.credit_memo_file'); + $services->alias(CreditMemoFileManagerInterface::class, 'sylius_refund.manager.credit_memo_file'); }; diff --git a/config/services/actions.php b/config/services/actions.php index ff80e47db..3bb2c5f6b 100644 --- a/config/services/actions.php +++ b/config/services/actions.php @@ -2,6 +2,13 @@ namespace Symfony\Component\DependencyInjection\Loader\Configurator; +use Sylius\RefundPlugin\Action\Admin\DownloadCreditMemoAction as AdminDownloadCreditMemoAction; +use Sylius\RefundPlugin\Action\Admin\OrderRefundsListAction; +use Sylius\RefundPlugin\Action\Admin\RefundUnitsAction; +use Sylius\RefundPlugin\Action\Admin\SendCreditMemoAction; +use Sylius\RefundPlugin\Action\CompleteRefundPaymentAction; +use Sylius\RefundPlugin\Action\Shop\DownloadCreditMemoAction as ShopDownloadCreditMemoAction; + return static function (ContainerConfigurator $container) { $services = $container->services(); $parameters = $container->parameters(); @@ -9,14 +16,14 @@ $services->defaults() ->public(); - $services->set('sylius_refund.controller.admin.download_credit_memo', \Sylius\RefundPlugin\Action\Admin\DownloadCreditMemoAction::class) + $services->set('sylius_refund.controller.admin.download_credit_memo', AdminDownloadCreditMemoAction::class) ->args([ service('sylius_refund.resolver.credit_memo_file'), service('sylius_refund.response_builder.credit_memo_file'), '%sylius_refund.pdf_generator.enabled%', ]); - $services->set('sylius_refund.controller.shop.download_credit_memo', \Sylius\RefundPlugin\Action\Shop\DownloadCreditMemoAction::class) + $services->set('sylius_refund.controller.shop.download_credit_memo', ShopDownloadCreditMemoAction::class) ->args([ service('sylius_refund.resolver.credit_memo_file'), service('sylius_refund.checker.credit_memo_customer_relation'), @@ -24,7 +31,7 @@ '%sylius_refund.pdf_generator.enabled%', ]); - $services->set('sylius_refund.controller.admin.order_refunds_list', \Sylius\RefundPlugin\Action\Admin\OrderRefundsListAction::class) + $services->set('sylius_refund.controller.admin.order_refunds_list', OrderRefundsListAction::class) ->args([ service('sylius.repository.order'), service('sylius_refund.checker.order_refunds_list_availability'), @@ -34,7 +41,7 @@ service('router'), ]); - $services->set('sylius_refund.controller.admin.refund_units', \Sylius\RefundPlugin\Action\Admin\RefundUnitsAction::class) + $services->set('sylius_refund.controller.admin.refund_units', RefundUnitsAction::class) ->args([ service('sylius.command_bus'), service('request_stack'), @@ -44,7 +51,7 @@ service('security.csrf.token_manager'), ]); - $services->set('sylius_refund.controller.complete_refund_payment', \Sylius\RefundPlugin\Action\CompleteRefundPaymentAction::class) + $services->set('sylius_refund.controller.complete_refund_payment', CompleteRefundPaymentAction::class) ->args([ service('request_stack'), service('sylius_refund.repository.refund_payment'), @@ -53,7 +60,7 @@ service('router'), ]); - $services->set('sylius_refund.controller.admin.send_credit_memo', \Sylius\RefundPlugin\Action\Admin\SendCreditMemoAction::class) + $services->set('sylius_refund.controller.admin.send_credit_memo', SendCreditMemoAction::class) ->args([ service('sylius.command_bus'), service('sylius_refund.repository.credit_memo'), diff --git a/config/services/checkers.php b/config/services/checkers.php index f4871dd5b..8a9d43623 100644 --- a/config/services/checkers.php +++ b/config/services/checkers.php @@ -2,37 +2,46 @@ namespace Symfony\Component\DependencyInjection\Loader\Configurator; +use Sylius\RefundPlugin\Checker\CreditMemoCustomerRelationChecker; +use Sylius\RefundPlugin\Checker\CreditMemoCustomerRelationCheckerInterface; +use Sylius\RefundPlugin\Checker\OrderFullyRefundedTotalChecker; +use Sylius\RefundPlugin\Checker\OrderFullyRefundedTotalCheckerInterface; +use Sylius\RefundPlugin\Checker\OrderRefundingAvailabilityChecker; +use Sylius\RefundPlugin\Checker\OrderRefundsListAvailabilityChecker; +use Sylius\RefundPlugin\Checker\UnitRefundingAvailabilityChecker; +use Sylius\RefundPlugin\Checker\UnitRefundingAvailabilityCheckerInterface; + return static function (ContainerConfigurator $container) { $services = $container->services(); $parameters = $container->parameters(); - $services->set('sylius_refund.checker.credit_memo_customer_relation', \Sylius\RefundPlugin\Checker\CreditMemoCustomerRelationChecker::class) + $services->set('sylius_refund.checker.credit_memo_customer_relation', CreditMemoCustomerRelationChecker::class) ->args([ service('sylius.context.customer'), service('sylius_refund.repository.credit_memo'), ]); - $services->alias(\Sylius\RefundPlugin\Checker\CreditMemoCustomerRelationCheckerInterface::class, 'sylius_refund.checker.credit_memo_customer_relation'); + $services->alias(CreditMemoCustomerRelationCheckerInterface::class, 'sylius_refund.checker.credit_memo_customer_relation'); - $services->set('sylius_refund.checker.order_refunding_availability', \Sylius\RefundPlugin\Checker\OrderRefundingAvailabilityChecker::class) + $services->set('sylius_refund.checker.order_refunding_availability', OrderRefundingAvailabilityChecker::class) ->args([ service('sylius.repository.order'), service('sylius_abstraction.state_machine'), ]); - $services->set('sylius_refund.checker.order_refunds_list_availability', \Sylius\RefundPlugin\Checker\OrderRefundsListAvailabilityChecker::class) + $services->set('sylius_refund.checker.order_refunds_list_availability', OrderRefundsListAvailabilityChecker::class) ->args([ service('sylius.repository.order'), service('sylius_refund.checker.order_refunding_availability'), ]); - $services->set('sylius_refund.checker.order_fully_refunded_total', \Sylius\RefundPlugin\Checker\OrderFullyRefundedTotalChecker::class) + $services->set('sylius_refund.checker.order_fully_refunded_total', OrderFullyRefundedTotalChecker::class) ->args([service('sylius_refund.provider.order_refunded_total')]); - $services->alias(\Sylius\RefundPlugin\Checker\OrderFullyRefundedTotalCheckerInterface::class, 'sylius_refund.checker.order_fully_refunded_total'); + $services->alias(OrderFullyRefundedTotalCheckerInterface::class, 'sylius_refund.checker.order_fully_refunded_total'); - $services->set('sylius_refund.checker.unit_refunding_availability', \Sylius\RefundPlugin\Checker\UnitRefundingAvailabilityChecker::class) + $services->set('sylius_refund.checker.unit_refunding_availability', UnitRefundingAvailabilityChecker::class) ->args([service('sylius_refund.provider.remaining_total')]); - $services->alias(\Sylius\RefundPlugin\Checker\UnitRefundingAvailabilityCheckerInterface::class, 'sylius_refund.checker.unit_refunding_availability'); + $services->alias(UnitRefundingAvailabilityCheckerInterface::class, 'sylius_refund.checker.unit_refunding_availability'); }; diff --git a/config/services/command_bus.php b/config/services/command_bus.php index e358702b1..865ded023 100644 --- a/config/services/command_bus.php +++ b/config/services/command_bus.php @@ -2,11 +2,15 @@ namespace Symfony\Component\DependencyInjection\Loader\Configurator; +use Sylius\RefundPlugin\CommandHandler\GenerateCreditMemoHandler; +use Sylius\RefundPlugin\CommandHandler\RefundUnitsHandler; +use Sylius\RefundPlugin\CommandHandler\SendCreditMemoHandler; + return static function (ContainerConfigurator $container) { $services = $container->services(); $parameters = $container->parameters(); - $services->set('sylius_refund.command_handler.refund_units', \Sylius\RefundPlugin\CommandHandler\RefundUnitsHandler::class) + $services->set('sylius_refund.command_handler.refund_units', RefundUnitsHandler::class) ->args([ tagged_iterator('sylius_refund.refunder'), service('sylius.event_bus'), @@ -15,7 +19,7 @@ ]) ->tag('messenger.message_handler', ['bus' => 'sylius.command_bus']); - $services->set('sylius_refund.command_handler.generate_credit_memo', \Sylius\RefundPlugin\CommandHandler\GenerateCreditMemoHandler::class) + $services->set('sylius_refund.command_handler.generate_credit_memo', GenerateCreditMemoHandler::class) ->args([ service('sylius_refund.generator.credit_memo'), service('sylius_refund.manager.credit_memo'), @@ -26,7 +30,7 @@ ]) ->tag('messenger.message_handler', ['bus' => 'sylius.command_bus']); - $services->set('sylius_refund.command_handler.send_credit_memo', \Sylius\RefundPlugin\CommandHandler\SendCreditMemoHandler::class) + $services->set('sylius_refund.command_handler.send_credit_memo', SendCreditMemoHandler::class) ->args([ service('sylius_refund.repository.credit_memo'), service('sylius_refund.email_sender.credit_memo'), diff --git a/config/services/converters.php b/config/services/converters.php index 1816c5872..6f6032c35 100644 --- a/config/services/converters.php +++ b/config/services/converters.php @@ -2,38 +2,49 @@ namespace Symfony\Component\DependencyInjection\Loader\Configurator; +use Sylius\RefundPlugin\Converter\LineItem\CompositeLineItemConverter; +use Sylius\RefundPlugin\Converter\LineItem\LineItemsConverterInterface; +use Sylius\RefundPlugin\Converter\LineItem\OrderItemUnitLineItemsConverter; +use Sylius\RefundPlugin\Converter\LineItem\ShipmentLineItemsConverter; +use Sylius\RefundPlugin\Converter\RefundUnitsConverter; +use Sylius\RefundPlugin\Converter\RefundUnitsConverterInterface; +use Sylius\RefundPlugin\Converter\Request\RequestToOrderItemUnitRefundConverter; +use Sylius\RefundPlugin\Converter\Request\RequestToRefundUnitsConverter; +use Sylius\RefundPlugin\Converter\Request\RequestToRefundUnitsConverterInterface; +use Sylius\RefundPlugin\Converter\Request\RequestToShipmentRefundConverter; + return static function (ContainerConfigurator $container) { $services = $container->services(); $parameters = $container->parameters(); - $services->set('sylius_refund.converter.line_items', \Sylius\RefundPlugin\Converter\LineItem\CompositeLineItemConverter::class) + $services->set('sylius_refund.converter.line_items', CompositeLineItemConverter::class) ->args([ tagged_iterator('sylius_refund.line_item_converter'), service('sylius_refund.filter.unit_refund'), ]); - $services->alias(\Sylius\RefundPlugin\Converter\LineItem\LineItemsConverterInterface::class, 'sylius_refund.converter.line_items'); + $services->alias(LineItemsConverterInterface::class, 'sylius_refund.converter.line_items'); $services->alias('sylius_refund.converter.line_items.composite', 'sylius_refund.converter.line_items'); - $services->set('sylius_refund.converter.request_to_refund_units', \Sylius\RefundPlugin\Converter\Request\RequestToRefundUnitsConverter::class) + $services->set('sylius_refund.converter.request_to_refund_units', RequestToRefundUnitsConverter::class) ->args([tagged_iterator('sylius_refund.request_to_refund_units_converter')]); - $services->alias(\Sylius\RefundPlugin\Converter\Request\RequestToRefundUnitsConverterInterface::class, 'sylius_refund.converter.request_to_refund_units'); + $services->alias(RequestToRefundUnitsConverterInterface::class, 'sylius_refund.converter.request_to_refund_units'); - $services->set('sylius_refund.converter.request_to_shipment_refund', \Sylius\RefundPlugin\Converter\Request\RequestToShipmentRefundConverter::class) + $services->set('sylius_refund.converter.request_to_shipment_refund', RequestToShipmentRefundConverter::class) ->args([service('sylius_refund.converter.refund_units')]) ->tag('sylius_refund.request_to_refund_units_converter'); - $services->alias(\Sylius\RefundPlugin\Converter\Request\RequestToShipmentRefundConverter::class, 'sylius_refund.converter.request_to_shipment_refund'); + $services->alias(RequestToShipmentRefundConverter::class, 'sylius_refund.converter.request_to_shipment_refund'); - $services->set('sylius_refund.converter.request_to_order_item_unit_refund', \Sylius\RefundPlugin\Converter\Request\RequestToOrderItemUnitRefundConverter::class) + $services->set('sylius_refund.converter.request_to_order_item_unit_refund', RequestToOrderItemUnitRefundConverter::class) ->args([service('sylius_refund.converter.refund_units')]) ->tag('sylius_refund.request_to_refund_units_converter'); - $services->alias(\Sylius\RefundPlugin\Converter\Request\RequestToOrderItemUnitRefundConverter::class, 'sylius_refund.converter.request_to_order_item_unit_refund'); + $services->alias(RequestToOrderItemUnitRefundConverter::class, 'sylius_refund.converter.request_to_order_item_unit_refund'); - $services->set('sylius_refund.converter.line_items.order_item_unit', \Sylius\RefundPlugin\Converter\LineItem\OrderItemUnitLineItemsConverter::class) + $services->set('sylius_refund.converter.line_items.order_item_unit', OrderItemUnitLineItemsConverter::class) ->args([ service('sylius.repository.order_item_unit'), service('sylius_refund.provider.tax_rate'), @@ -41,7 +52,7 @@ ]) ->tag('sylius_refund.line_item_converter'); - $services->set('sylius_refund.converter.line_items.shipment', \Sylius\RefundPlugin\Converter\LineItem\ShipmentLineItemsConverter::class) + $services->set('sylius_refund.converter.line_items.shipment', ShipmentLineItemsConverter::class) ->args([ service('sylius.repository.adjustment'), service('sylius_refund.provider.tax_rate'), @@ -49,8 +60,8 @@ ]) ->tag('sylius_refund.line_item_converter'); - $services->set('sylius_refund.converter.refund_units', \Sylius\RefundPlugin\Converter\RefundUnitsConverter::class) + $services->set('sylius_refund.converter.refund_units', RefundUnitsConverter::class) ->args([service('sylius_refund.calculator.unit_refund_total')]); - $services->alias(\Sylius\RefundPlugin\Converter\RefundUnitsConverterInterface::class, 'sylius_refund.converter.refund_units'); + $services->alias(RefundUnitsConverterInterface::class, 'sylius_refund.converter.refund_units'); }; diff --git a/config/services/creators.php b/config/services/creators.php index 8266931cd..b7c5218c0 100644 --- a/config/services/creators.php +++ b/config/services/creators.php @@ -2,11 +2,16 @@ namespace Symfony\Component\DependencyInjection\Loader\Configurator; +use Sylius\RefundPlugin\Creator\RefundCreator; +use Sylius\RefundPlugin\Creator\RefundCreatorInterface; +use Sylius\RefundPlugin\Creator\RefundUnitsCommandCreator; +use Sylius\RefundPlugin\Creator\RequestCommandCreatorInterface; + return static function (ContainerConfigurator $container) { $services = $container->services(); $parameters = $container->parameters(); - $services->set('sylius_refund.creator.refund', \Sylius\RefundPlugin\Creator\RefundCreator::class) + $services->set('sylius_refund.creator.refund', RefundCreator::class) ->args([ service('sylius_refund.factory.refund'), service('sylius_refund.provider.remaining_total'), @@ -14,10 +19,10 @@ service('sylius_refund.manager.refund'), ]); - $services->alias(\Sylius\RefundPlugin\Creator\RefundCreatorInterface::class, 'sylius_refund.creator.refund'); + $services->alias(RefundCreatorInterface::class, 'sylius_refund.creator.refund'); - $services->set('sylius_refund.creator.request_command', \Sylius\RefundPlugin\Creator\RefundUnitsCommandCreator::class) + $services->set('sylius_refund.creator.request_command', RefundUnitsCommandCreator::class) ->args([service('sylius_refund.converter.request_to_refund_units')]); - $services->alias(\Sylius\RefundPlugin\Creator\RequestCommandCreatorInterface::class, 'sylius_refund.creator.request_command'); + $services->alias(RequestCommandCreatorInterface::class, 'sylius_refund.creator.request_command'); }; diff --git a/config/services/event_bus.php b/config/services/event_bus.php index c176ee219..40b4d110a 100644 --- a/config/services/event_bus.php +++ b/config/services/event_bus.php @@ -2,28 +2,35 @@ namespace Symfony\Component\DependencyInjection\Loader\Configurator; +use Sylius\RefundPlugin\Listener\CreditMemoGeneratedEventListener; +use Sylius\RefundPlugin\Listener\UnitRefundedEventListener; +use Sylius\RefundPlugin\ProcessManager\CreditMemoProcessManager; +use Sylius\RefundPlugin\ProcessManager\RefundPaymentProcessManager; +use Sylius\RefundPlugin\ProcessManager\UnitsRefundedProcessManager; +use Sylius\RefundPlugin\ProcessManager\UnitsRefundedProcessManagerInterface; + return static function (ContainerConfigurator $container) { $services = $container->services(); $parameters = $container->parameters(); - $services->set('sylius_refund.listener.credit_memo_generated', \Sylius\RefundPlugin\Listener\CreditMemoGeneratedEventListener::class) + $services->set('sylius_refund.listener.credit_memo_generated', CreditMemoGeneratedEventListener::class) ->public() ->args([service('sylius.command_bus')]) ->tag('messenger.message_handler', ['bus' => 'sylius.event_bus']); - $services->set('sylius_refund.listener.unit_refunded', \Sylius\RefundPlugin\Listener\UnitRefundedEventListener::class) + $services->set('sylius_refund.listener.unit_refunded', UnitRefundedEventListener::class) ->public() ->args([service('sylius_refund.state_resolver.order_partially_refunded')]) ->tag('messenger.message_handler', ['bus' => 'sylius.event_bus']); - $services->set('sylius_refund.process_manager.units_refunded', \Sylius\RefundPlugin\ProcessManager\UnitsRefundedProcessManager::class) + $services->set('sylius_refund.process_manager.units_refunded', UnitsRefundedProcessManager::class) ->public() ->args([tagged_iterator('sylius_refund.units_refunded.process_step')]) ->tag('messenger.message_handler', ['bus' => 'sylius.event_bus']); - $services->alias(\Sylius\RefundPlugin\ProcessManager\UnitsRefundedProcessManagerInterface::class, 'sylius_refund.process_manager.units_refunded'); + $services->alias(UnitsRefundedProcessManagerInterface::class, 'sylius_refund.process_manager.units_refunded'); - $services->set('sylius_refund.process_manager.refund_payment', \Sylius\RefundPlugin\ProcessManager\RefundPaymentProcessManager::class) + $services->set('sylius_refund.process_manager.refund_payment', RefundPaymentProcessManager::class) ->args([ service('sylius_refund.state_resolver.order_fully_refunded'), service('sylius_refund.provider.related_payment_id'), @@ -35,7 +42,7 @@ ]) ->tag('sylius_refund.units_refunded.process_step', ['priority' => 50]); - $services->set('sylius_refund.process_manager.credit_memo', \Sylius\RefundPlugin\ProcessManager\CreditMemoProcessManager::class) + $services->set('sylius_refund.process_manager.credit_memo', CreditMemoProcessManager::class) ->args([service('sylius.command_bus')]) ->tag('sylius_refund.units_refunded.process_step', ['priority' => 100]); }; diff --git a/config/services/factories.php b/config/services/factories.php index bc9c95d30..69a1519cb 100644 --- a/config/services/factories.php +++ b/config/services/factories.php @@ -2,38 +2,49 @@ namespace Symfony\Component\DependencyInjection\Loader\Configurator; +use Sylius\RefundPlugin\Factory\CreditMemoFactory; +use Sylius\RefundPlugin\Factory\CreditMemoSequenceFactory; +use Sylius\RefundPlugin\Factory\CreditMemoSequenceFactoryInterface; +use Sylius\RefundPlugin\Factory\CustomerBillingDataFactory; +use Sylius\RefundPlugin\Factory\LineItemFactory; +use Sylius\RefundPlugin\Factory\LineItemFactoryInterface; +use Sylius\RefundPlugin\Factory\RefundTypeFactory; +use Sylius\RefundPlugin\Factory\RefundTypeFactoryInterface; +use Sylius\RefundPlugin\Factory\ShopBillingDataFactory; +use Sylius\RefundPlugin\Provider\CurrentDateTimeImmutableProviderInterface; + return static function (ContainerConfigurator $container) { $services = $container->services(); $parameters = $container->parameters(); - $services->set('sylius_refund.factory.credit_memo_sequence', \Sylius\RefundPlugin\Factory\CreditMemoSequenceFactory::class); + $services->set('sylius_refund.factory.credit_memo_sequence', CreditMemoSequenceFactory::class); - $services->alias(\Sylius\RefundPlugin\Factory\CreditMemoSequenceFactoryInterface::class, 'sylius_refund.factory.credit_memo_sequence'); + $services->alias(CreditMemoSequenceFactoryInterface::class, 'sylius_refund.factory.credit_memo_sequence'); - $services->set('sylius_refund.factory.refund_type', \Sylius\RefundPlugin\Factory\RefundTypeFactory::class) + $services->set('sylius_refund.factory.refund_type', RefundTypeFactory::class) ->args(['%sylius_refund.refund_type%']); - $services->alias(\Sylius\RefundPlugin\Factory\RefundTypeFactoryInterface::class, 'sylius_refund.factory.refund_type'); + $services->alias(RefundTypeFactoryInterface::class, 'sylius_refund.factory.refund_type'); - $services->set('sylius_refund.factory.line_item', \Sylius\RefundPlugin\Factory\LineItemFactory::class) + $services->set('sylius_refund.factory.line_item', LineItemFactory::class) ->args(['%sylius_refund.model.line_item.class%']); - $services->alias(\Sylius\RefundPlugin\Factory\LineItemFactoryInterface::class, 'sylius_refund.factory.line_item'); + $services->alias(LineItemFactoryInterface::class, 'sylius_refund.factory.line_item'); - $services->set('sylius_refund.custom_factory.credit_memo', \Sylius\RefundPlugin\Factory\CreditMemoFactory::class) + $services->set('sylius_refund.custom_factory.credit_memo', CreditMemoFactory::class) ->decorate('sylius_refund.factory.credit_memo', null, 256) ->args([ service('.inner'), service('sylius_refund.generator.credit_memo_identifier'), service('sylius_refund.generator.credit_memo_number'), - service(\Sylius\RefundPlugin\Provider\CurrentDateTimeImmutableProviderInterface::class), + service(CurrentDateTimeImmutableProviderInterface::class), ]); - $services->set('sylius_refund.custom_factory.shop_billing_data', \Sylius\RefundPlugin\Factory\ShopBillingDataFactory::class) + $services->set('sylius_refund.custom_factory.shop_billing_data', ShopBillingDataFactory::class) ->decorate('sylius_refund.factory.shop_billing_data', null, 256) ->args([service('.inner')]); - $services->set('sylius_refund.custom_factory.customer_billing_data', \Sylius\RefundPlugin\Factory\CustomerBillingDataFactory::class) + $services->set('sylius_refund.custom_factory.customer_billing_data', CustomerBillingDataFactory::class) ->decorate('sylius_refund.factory.customer_billing_data', null, 256) ->args([service('.inner')]); }; diff --git a/config/services/filters.php b/config/services/filters.php index 26aedf5c2..dfa6b53d6 100644 --- a/config/services/filters.php +++ b/config/services/filters.php @@ -2,11 +2,14 @@ namespace Symfony\Component\DependencyInjection\Loader\Configurator; +use Sylius\RefundPlugin\Filter\UnitRefundFilter; +use Sylius\RefundPlugin\Filter\UnitRefundFilterInterface; + return static function (ContainerConfigurator $container) { $services = $container->services(); $parameters = $container->parameters(); - $services->set('sylius_refund.filter.unit_refund', \Sylius\RefundPlugin\Filter\UnitRefundFilter::class); + $services->set('sylius_refund.filter.unit_refund', UnitRefundFilter::class); - $services->alias(\Sylius\RefundPlugin\Filter\UnitRefundFilterInterface::class, 'sylius_refund.filter.unit_refund'); + $services->alias(UnitRefundFilterInterface::class, 'sylius_refund.filter.unit_refund'); }; diff --git a/config/services/generators.php b/config/services/generators.php index a2bdb821e..fe5cbfc16 100644 --- a/config/services/generators.php +++ b/config/services/generators.php @@ -2,20 +2,37 @@ namespace Symfony\Component\DependencyInjection\Loader\Configurator; +use Sylius\RefundPlugin\Generator\CreditMemoFileNameGenerator; +use Sylius\RefundPlugin\Generator\CreditMemoFileNameGeneratorInterface; +use Sylius\RefundPlugin\Generator\CreditMemoGenerator; +use Sylius\RefundPlugin\Generator\CreditMemoGeneratorInterface; +use Sylius\RefundPlugin\Generator\CreditMemoIdentifierGeneratorInterface; +use Sylius\RefundPlugin\Generator\CreditMemoNumberGeneratorInterface; +use Sylius\RefundPlugin\Generator\CreditMemoPdfFileGenerator; +use Sylius\RefundPlugin\Generator\CreditMemoPdfFileGeneratorInterface; +use Sylius\RefundPlugin\Generator\PdfOptionsGenerator; +use Sylius\RefundPlugin\Generator\PdfOptionsGeneratorInterface; +use Sylius\RefundPlugin\Generator\SequentialCreditMemoNumberGenerator; +use Sylius\RefundPlugin\Generator\TaxItemsGenerator; +use Sylius\RefundPlugin\Generator\TaxItemsGeneratorInterface; +use Sylius\RefundPlugin\Generator\TwigToPdfGenerator; +use Sylius\RefundPlugin\Generator\TwigToPdfGeneratorInterface; +use Sylius\RefundPlugin\Generator\UuidCreditMemoIdentifierGenerator; + return static function (ContainerConfigurator $container) { $services = $container->services(); $parameters = $container->parameters(); - $services->set('sylius_refund.generator.credit_memo_number', \Sylius\RefundPlugin\Generator\SequentialCreditMemoNumberGenerator::class) + $services->set('sylius_refund.generator.credit_memo_number', SequentialCreditMemoNumberGenerator::class) ->args([ service('sylius_refund.repository.credit_memo_sequence'), service('sylius_refund.factory.credit_memo_sequence'), service('doctrine.orm.entity_manager'), ]); - $services->alias(\Sylius\RefundPlugin\Generator\CreditMemoNumberGeneratorInterface::class, 'sylius_refund.generator.credit_memo_number'); + $services->alias(CreditMemoNumberGeneratorInterface::class, 'sylius_refund.generator.credit_memo_number'); - $services->set('sylius_refund.generator.credit_memo', \Sylius\RefundPlugin\Generator\CreditMemoGenerator::class) + $services->set('sylius_refund.generator.credit_memo', CreditMemoGenerator::class) ->args([ service('sylius_refund.converter.line_items'), service('sylius_refund.generator.tax_items'), @@ -24,13 +41,13 @@ service('sylius_refund.factory.shop_billing_data'), ]); - $services->alias(\Sylius\RefundPlugin\Generator\CreditMemoGeneratorInterface::class, 'sylius_refund.generator.credit_memo'); + $services->alias(CreditMemoGeneratorInterface::class, 'sylius_refund.generator.credit_memo'); - $services->set('sylius_refund.generator.credit_memo_file_name', \Sylius\RefundPlugin\Generator\CreditMemoFileNameGenerator::class); + $services->set('sylius_refund.generator.credit_memo_file_name', CreditMemoFileNameGenerator::class); - $services->alias(\Sylius\RefundPlugin\Generator\CreditMemoFileNameGeneratorInterface::class, 'sylius_refund.generator.credit_memo_file_name'); + $services->alias(CreditMemoFileNameGeneratorInterface::class, 'sylius_refund.generator.credit_memo_file_name'); - $services->set('sylius_refund.generator.credit_memo_pdf_file', \Sylius\RefundPlugin\Generator\CreditMemoPdfFileGenerator::class) + $services->set('sylius_refund.generator.credit_memo_pdf_file', CreditMemoPdfFileGenerator::class) ->args([ service('sylius_refund.repository.credit_memo'), service('file_locator'), @@ -40,31 +57,31 @@ service('sylius_refund.generator.credit_memo_file_name'), ]); - $services->alias(\Sylius\RefundPlugin\Generator\CreditMemoPdfFileGeneratorInterface::class, 'sylius_refund.generator.credit_memo_pdf_file'); + $services->alias(CreditMemoPdfFileGeneratorInterface::class, 'sylius_refund.generator.credit_memo_pdf_file'); - $services->set('sylius_refund.generator.tax_items', \Sylius\RefundPlugin\Generator\TaxItemsGenerator::class); + $services->set('sylius_refund.generator.tax_items', TaxItemsGenerator::class); - $services->alias(\Sylius\RefundPlugin\Generator\TaxItemsGeneratorInterface::class, 'sylius_refund.generator.tax_items'); + $services->alias(TaxItemsGeneratorInterface::class, 'sylius_refund.generator.tax_items'); - $services->set('sylius_refund.generator.credit_memo_identifier', \Sylius\RefundPlugin\Generator\UuidCreditMemoIdentifierGenerator::class); + $services->set('sylius_refund.generator.credit_memo_identifier', UuidCreditMemoIdentifierGenerator::class); - $services->alias(\Sylius\RefundPlugin\Generator\CreditMemoIdentifierGeneratorInterface::class, 'sylius_refund.generator.credit_memo_identifier'); + $services->alias(CreditMemoIdentifierGeneratorInterface::class, 'sylius_refund.generator.credit_memo_identifier'); - $services->set('sylius_refund.generator.pdf_options', \Sylius\RefundPlugin\Generator\PdfOptionsGenerator::class) + $services->set('sylius_refund.generator.pdf_options', PdfOptionsGenerator::class) ->args([ service('file_locator'), '%knp_snappy.pdf.options%', '%sylius_refund.pdf_generator.allowed_files%', ]); - $services->alias(\Sylius\RefundPlugin\Generator\PdfOptionsGeneratorInterface::class, 'sylius_refund.generator.pdf_options'); + $services->alias(PdfOptionsGeneratorInterface::class, 'sylius_refund.generator.pdf_options'); - $services->set('sylius_refund.generator.twig_to_pdf', \Sylius\RefundPlugin\Generator\TwigToPdfGenerator::class) + $services->set('sylius_refund.generator.twig_to_pdf', TwigToPdfGenerator::class) ->args([ service('twig'), service('knp_snappy.pdf'), service('sylius_refund.generator.pdf_options'), ]); - $services->alias(\Sylius\RefundPlugin\Generator\TwigToPdfGeneratorInterface::class, 'sylius_refund.generator.twig_to_pdf'); + $services->alias(TwigToPdfGeneratorInterface::class, 'sylius_refund.generator.twig_to_pdf'); }; diff --git a/config/services/listeners.php b/config/services/listeners.php index 7dde333cd..d33e41079 100644 --- a/config/services/listeners.php +++ b/config/services/listeners.php @@ -2,6 +2,8 @@ namespace Symfony\Component\DependencyInjection\Loader\Configurator; +use Sylius\RefundPlugin\Menu\AdminMainMenuListener; + return static function (ContainerConfigurator $container) { $services = $container->services(); $parameters = $container->parameters(); @@ -9,6 +11,6 @@ $services->defaults() ->public(); - $services->set('sylius_refund.listener.admin_main_menu', \Sylius\RefundPlugin\Menu\AdminMainMenuListener::class) + $services->set('sylius_refund.listener.admin_main_menu', AdminMainMenuListener::class) ->tag('kernel.event_listener', ['event' => 'sylius.menu.admin.main', 'method' => 'addCreditMemosSection']); }; diff --git a/config/services/providers.php b/config/services/providers.php index 56dc808d0..51d13172d 100644 --- a/config/services/providers.php +++ b/config/services/providers.php @@ -2,70 +2,91 @@ namespace Symfony\Component\DependencyInjection\Loader\Configurator; +use Sylius\RefundPlugin\Provider\CreditMemoFileProvider; +use Sylius\RefundPlugin\Provider\CreditMemoFileProviderInterface; +use Sylius\RefundPlugin\Provider\CurrentDateTimeImmutableProvider; +use Sylius\RefundPlugin\Provider\CurrentDateTimeImmutableProviderInterface; +use Sylius\RefundPlugin\Provider\DefaultRelatedPaymentIdProvider; +use Sylius\RefundPlugin\Provider\OrderItemUnitTotalProvider; +use Sylius\RefundPlugin\Provider\OrderRefundedTotalProvider; +use Sylius\RefundPlugin\Provider\OrderRefundedTotalProviderInterface; +use Sylius\RefundPlugin\Provider\RefundedShipmentFeeProvider; +use Sylius\RefundPlugin\Provider\RefundedShipmentFeeProviderInterface; +use Sylius\RefundPlugin\Provider\RefundPaymentMethodsProviderInterface; +use Sylius\RefundPlugin\Provider\RelatedPaymentIdProviderInterface; +use Sylius\RefundPlugin\Provider\RemainingTotalProvider; +use Sylius\RefundPlugin\Provider\RemainingTotalProviderInterface; +use Sylius\RefundPlugin\Provider\ShipmentTotalProvider; +use Sylius\RefundPlugin\Provider\SupportedRefundPaymentMethodsProvider; +use Sylius\RefundPlugin\Provider\TaxRateProvider; +use Sylius\RefundPlugin\Provider\TaxRateProviderInterface; +use Sylius\RefundPlugin\Provider\UnitRefundedTotalProvider; +use Sylius\RefundPlugin\Provider\UnitRefundedTotalProviderInterface; + return static function (ContainerConfigurator $container) { $services = $container->services(); $parameters = $container->parameters(); $parameters->set('sylius_refund.supported_gateways', ['offline']); - $services->set('sylius_refund.provider.credit_memo_file', \Sylius\RefundPlugin\Provider\CreditMemoFileProvider::class) + $services->set('sylius_refund.provider.credit_memo_file', CreditMemoFileProvider::class) ->args([ service('sylius_refund.generator.credit_memo_file_name'), service('sylius_refund.manager.credit_memo_file'), ]); - $services->alias(\Sylius\RefundPlugin\Provider\CreditMemoFileProviderInterface::class, 'sylius_refund.provider.credit_memo_file'); + $services->alias(CreditMemoFileProviderInterface::class, 'sylius_refund.provider.credit_memo_file'); - $services->set('sylius_refund.provider.refunded_shipment_fee', \Sylius\RefundPlugin\Provider\RefundedShipmentFeeProvider::class) + $services->set('sylius_refund.provider.refunded_shipment_fee', RefundedShipmentFeeProvider::class) ->args([service('sylius.repository.adjustment')]); - $services->alias(\Sylius\RefundPlugin\Provider\RefundedShipmentFeeProviderInterface::class, 'sylius_refund.provider.refunded_shipment_fee'); + $services->alias(RefundedShipmentFeeProviderInterface::class, 'sylius_refund.provider.refunded_shipment_fee'); - $services->set('sylius_refund.provider.order_refunded_total', \Sylius\RefundPlugin\Provider\OrderRefundedTotalProvider::class) + $services->set('sylius_refund.provider.order_refunded_total', OrderRefundedTotalProvider::class) ->args([ service('sylius_refund.repository.refund'), service('sylius.repository.order_item_unit'), ]); - $services->alias(\Sylius\RefundPlugin\Provider\OrderRefundedTotalProviderInterface::class, 'sylius_refund.provider.order_refunded_total'); + $services->alias(OrderRefundedTotalProviderInterface::class, 'sylius_refund.provider.order_refunded_total'); - $services->set('sylius_refund.provider.current_date_time_immutable', \Sylius\RefundPlugin\Provider\CurrentDateTimeImmutableProvider::class); + $services->set('sylius_refund.provider.current_date_time_immutable', CurrentDateTimeImmutableProvider::class); - $services->alias(\Sylius\RefundPlugin\Provider\CurrentDateTimeImmutableProviderInterface::class, 'sylius_refund.provider.current_date_time_immutable'); + $services->alias(CurrentDateTimeImmutableProviderInterface::class, 'sylius_refund.provider.current_date_time_immutable'); - $services->set('sylius_refund.provider.order_item_unit_total', \Sylius\RefundPlugin\Provider\OrderItemUnitTotalProvider::class) + $services->set('sylius_refund.provider.order_item_unit_total', OrderItemUnitTotalProvider::class) ->args([service('sylius.repository.order_item_unit')]) ->tag('sylius_refund.refund_unit_total_provider'); - $services->set('sylius_refund.provider.shipment_total', \Sylius\RefundPlugin\Provider\ShipmentTotalProvider::class) + $services->set('sylius_refund.provider.shipment_total', ShipmentTotalProvider::class) ->args([service('sylius.repository.adjustment')]) ->tag('sylius_refund.refund_unit_total_provider'); - $services->set('sylius_refund.provider.remaining_total', \Sylius\RefundPlugin\Provider\RemainingTotalProvider::class) + $services->set('sylius_refund.provider.remaining_total', RemainingTotalProvider::class) ->args([ tagged_locator('sylius_refund.refund_unit_total_provider', indexAttribute: 'refund_type', defaultIndexMethod: 'refundType'), service('sylius_refund.repository.refund'), ]); - $services->alias(\Sylius\RefundPlugin\Provider\RemainingTotalProviderInterface::class, 'sylius_refund.provider.remaining_total'); + $services->alias(RemainingTotalProviderInterface::class, 'sylius_refund.provider.remaining_total'); - $services->set('sylius_refund.provider.unit_refunded_total', \Sylius\RefundPlugin\Provider\UnitRefundedTotalProvider::class) + $services->set('sylius_refund.provider.unit_refunded_total', UnitRefundedTotalProvider::class) ->args([service('sylius_refund.repository.refund')]); - $services->alias(\Sylius\RefundPlugin\Provider\UnitRefundedTotalProviderInterface::class, 'sylius_refund.provider.unit_refunded_total'); + $services->alias(UnitRefundedTotalProviderInterface::class, 'sylius_refund.provider.unit_refunded_total'); - $services->set('sylius_refund.provider.related_payment_id', \Sylius\RefundPlugin\Provider\DefaultRelatedPaymentIdProvider::class); + $services->set('sylius_refund.provider.related_payment_id', DefaultRelatedPaymentIdProvider::class); - $services->alias(\Sylius\RefundPlugin\Provider\RelatedPaymentIdProviderInterface::class, 'sylius_refund.provider.related_payment_id'); + $services->alias(RelatedPaymentIdProviderInterface::class, 'sylius_refund.provider.related_payment_id'); - $services->set('sylius_refund.provider.refund_payment_methods', \Sylius\RefundPlugin\Provider\SupportedRefundPaymentMethodsProvider::class) + $services->set('sylius_refund.provider.refund_payment_methods', SupportedRefundPaymentMethodsProvider::class) ->args([ service('sylius.repository.payment_method'), '%sylius_refund.supported_gateways%', ]); - $services->alias(\Sylius\RefundPlugin\Provider\RefundPaymentMethodsProviderInterface::class, 'sylius_refund.provider.refund_payment_methods'); + $services->alias(RefundPaymentMethodsProviderInterface::class, 'sylius_refund.provider.refund_payment_methods'); - $services->set('sylius_refund.provider.tax_rate', \Sylius\RefundPlugin\Provider\TaxRateProvider::class); + $services->set('sylius_refund.provider.tax_rate', TaxRateProvider::class); - $services->alias(\Sylius\RefundPlugin\Provider\TaxRateProviderInterface::class, 'sylius_refund.provider.tax_rate'); + $services->alias(TaxRateProviderInterface::class, 'sylius_refund.provider.tax_rate'); }; diff --git a/config/services/queries.php b/config/services/queries.php index 7a361283c..729660e48 100644 --- a/config/services/queries.php +++ b/config/services/queries.php @@ -2,13 +2,16 @@ namespace Symfony\Component\DependencyInjection\Loader\Configurator; +use Sylius\RefundPlugin\Doctrine\ORM\CountOrderItemUnitRefundsBelongingToOrderQuery; +use Sylius\RefundPlugin\Doctrine\ORM\CountShipmentRefundsBelongingToOrderQuery; + return static function (ContainerConfigurator $container) { $services = $container->services(); $parameters = $container->parameters(); - $services->set('sylius_refund.doctrine.orm.query.count_order_item_unit_refunds_belonging_to_order', \Sylius\RefundPlugin\Doctrine\ORM\CountOrderItemUnitRefundsBelongingToOrderQuery::class) + $services->set('sylius_refund.doctrine.orm.query.count_order_item_unit_refunds_belonging_to_order', CountOrderItemUnitRefundsBelongingToOrderQuery::class) ->args([service('sylius.repository.order_item_unit')]); - $services->set('sylius_refund.doctrine.orm.query.count_shipment_refunds_belonging_to_order', \Sylius\RefundPlugin\Doctrine\ORM\CountShipmentRefundsBelongingToOrderQuery::class) + $services->set('sylius_refund.doctrine.orm.query.count_shipment_refunds_belonging_to_order', CountShipmentRefundsBelongingToOrderQuery::class) ->args([service('sylius.repository.adjustment')]); }; diff --git a/config/services/resolvers.php b/config/services/resolvers.php index cf516e4a6..365453068 100644 --- a/config/services/resolvers.php +++ b/config/services/resolvers.php @@ -2,11 +2,16 @@ namespace Symfony\Component\DependencyInjection\Loader\Configurator; +use Sylius\RefundPlugin\Resolver\CreditMemoFilePathResolver; +use Sylius\RefundPlugin\Resolver\CreditMemoFilePathResolverInterface; +use Sylius\RefundPlugin\Resolver\CreditMemoFileResolver; +use Sylius\RefundPlugin\Resolver\CreditMemoFileResolverInterface; + return static function (ContainerConfigurator $container) { $services = $container->services(); $parameters = $container->parameters(); - $services->set('sylius_refund.resolver.credit_memo_file', \Sylius\RefundPlugin\Resolver\CreditMemoFileResolver::class) + $services->set('sylius_refund.resolver.credit_memo_file', CreditMemoFileResolver::class) ->args([ service('sylius_refund.repository.credit_memo'), service('sylius_refund.provider.credit_memo_file'), @@ -14,10 +19,10 @@ service('sylius_refund.manager.credit_memo_file'), ]); - $services->alias(\Sylius\RefundPlugin\Resolver\CreditMemoFileResolverInterface::class, 'sylius_refund.resolver.credit_memo_file'); + $services->alias(CreditMemoFileResolverInterface::class, 'sylius_refund.resolver.credit_memo_file'); - $services->set('sylius_refund.resolver.credit_memo_file_path', \Sylius\RefundPlugin\Resolver\CreditMemoFilePathResolver::class) + $services->set('sylius_refund.resolver.credit_memo_file_path', CreditMemoFilePathResolver::class) ->args(['%sylius_refund.credit_memo_save_path%']); - $services->alias(\Sylius\RefundPlugin\Resolver\CreditMemoFilePathResolverInterface::class, 'sylius_refund.resolver.credit_memo_file_path'); + $services->alias(CreditMemoFilePathResolverInterface::class, 'sylius_refund.resolver.credit_memo_file_path'); }; diff --git a/config/services/state_resolvers.php b/config/services/state_resolvers.php index 00979fe25..552334297 100644 --- a/config/services/state_resolvers.php +++ b/config/services/state_resolvers.php @@ -2,11 +2,18 @@ namespace Symfony\Component\DependencyInjection\Loader\Configurator; +use Sylius\RefundPlugin\StateResolver\OrderFullyRefundedStateResolver; +use Sylius\RefundPlugin\StateResolver\OrderFullyRefundedStateResolverInterface; +use Sylius\RefundPlugin\StateResolver\OrderPartiallyRefundedStateResolver; +use Sylius\RefundPlugin\StateResolver\OrderPartiallyRefundedStateResolverInterface; +use Sylius\RefundPlugin\StateResolver\RefundPaymentCompletedStateApplier; +use Sylius\RefundPlugin\StateResolver\RefundPaymentCompletedStateApplierInterface; + return static function (ContainerConfigurator $container) { $services = $container->services(); $parameters = $container->parameters(); - $services->set('sylius_refund.state_resolver.order_fully_refunded', \Sylius\RefundPlugin\StateResolver\OrderFullyRefundedStateResolver::class) + $services->set('sylius_refund.state_resolver.order_fully_refunded', OrderFullyRefundedStateResolver::class) ->args([ service('sylius_abstraction.state_machine'), service('sylius.manager.order'), @@ -14,22 +21,22 @@ service('sylius.repository.order'), ]); - $services->alias(\Sylius\RefundPlugin\StateResolver\OrderFullyRefundedStateResolverInterface::class, 'sylius_refund.state_resolver.order_fully_refunded'); + $services->alias(OrderFullyRefundedStateResolverInterface::class, 'sylius_refund.state_resolver.order_fully_refunded'); - $services->set('sylius_refund.state_resolver.order_partially_refunded', \Sylius\RefundPlugin\StateResolver\OrderPartiallyRefundedStateResolver::class) + $services->set('sylius_refund.state_resolver.order_partially_refunded', OrderPartiallyRefundedStateResolver::class) ->args([ service('sylius.repository.order'), service('sylius_abstraction.state_machine'), service('sylius.manager.order'), ]); - $services->alias(\Sylius\RefundPlugin\StateResolver\OrderPartiallyRefundedStateResolverInterface::class, 'sylius_refund.state_resolver.order_partially_refunded'); + $services->alias(OrderPartiallyRefundedStateResolverInterface::class, 'sylius_refund.state_resolver.order_partially_refunded'); - $services->set('sylius_refund.state_resolver.refund_payment_completed_applier', \Sylius\RefundPlugin\StateResolver\RefundPaymentCompletedStateApplier::class) + $services->set('sylius_refund.state_resolver.refund_payment_completed_applier', RefundPaymentCompletedStateApplier::class) ->args([ service('sylius_abstraction.state_machine'), service('sylius_refund.manager.refund_payment'), ]); - $services->alias(\Sylius\RefundPlugin\StateResolver\RefundPaymentCompletedStateApplierInterface::class, 'sylius_refund.state_resolver.refund_payment_completed_applier'); + $services->alias(RefundPaymentCompletedStateApplierInterface::class, 'sylius_refund.state_resolver.refund_payment_completed_applier'); }; diff --git a/config/services/twig_components.php b/config/services/twig_components.php index d2baf1b3e..215195b3c 100644 --- a/config/services/twig_components.php +++ b/config/services/twig_components.php @@ -2,11 +2,13 @@ namespace Symfony\Component\DependencyInjection\Loader\Configurator; +use Sylius\RefundPlugin\Twig\Component\OrderCreditMemosComponent; + return static function (ContainerConfigurator $container) { $services = $container->services(); $parameters = $container->parameters(); - $services->set('sylius_refund.twig_component.customer_credit_memos', \Sylius\RefundPlugin\Twig\Component\OrderCreditMemosComponent::class) + $services->set('sylius_refund.twig_component.customer_credit_memos', OrderCreditMemosComponent::class) ->args([service('sylius_refund.repository.credit_memo')]) ->tag('sylius.twig_component', ['key' => 'sylius_refund:shop:account:credit_memos']) ->tag('sylius.twig_component', ['key' => 'sylius_refund:admin:credit_memos']); diff --git a/config/services/validators.php b/config/services/validators.php index 4655755ab..1d3544b06 100644 --- a/config/services/validators.php +++ b/config/services/validators.php @@ -2,35 +2,42 @@ namespace Symfony\Component\DependencyInjection\Loader\Configurator; +use Sylius\RefundPlugin\Validator\OrderItemUnitRefundsBelongingToOrderValidator; +use Sylius\RefundPlugin\Validator\RefundAmountValidator; +use Sylius\RefundPlugin\Validator\RefundAmountValidatorInterface; +use Sylius\RefundPlugin\Validator\RefundUnitsCommandValidator; +use Sylius\RefundPlugin\Validator\RefundUnitsCommandValidatorInterface; +use Sylius\RefundPlugin\Validator\ShipmentRefundsBelongingToOrderValidator; + return static function (ContainerConfigurator $container) { $services = $container->services(); $parameters = $container->parameters(); - $services->set('sylius_refund.validator.refund_units_command', \Sylius\RefundPlugin\Validator\RefundUnitsCommandValidator::class) + $services->set('sylius_refund.validator.refund_units_command', RefundUnitsCommandValidator::class) ->args([ service('sylius_refund.checker.order_refunding_availability'), service('sylius_refund.validator.refund_amount'), tagged_iterator('sylius_refund.validator.unit_refunds_belonging_to_order'), ]); - $services->alias(\Sylius\RefundPlugin\Validator\RefundUnitsCommandValidatorInterface::class, 'sylius_refund.validator.refund_units_command'); + $services->alias(RefundUnitsCommandValidatorInterface::class, 'sylius_refund.validator.refund_units_command'); - $services->set('sylius_refund.validator.order_item_unit_refunds_belonging_to_order', \Sylius\RefundPlugin\Validator\OrderItemUnitRefundsBelongingToOrderValidator::class) + $services->set('sylius_refund.validator.order_item_unit_refunds_belonging_to_order', OrderItemUnitRefundsBelongingToOrderValidator::class) ->args([ service('sylius_refund.filter.unit_refund'), service('sylius_refund.doctrine.orm.query.count_order_item_unit_refunds_belonging_to_order'), ]) ->tag('sylius_refund.validator.unit_refunds_belonging_to_order'); - $services->set('sylius_refund.validator.shipment_refunds_belonging_to_order', \Sylius\RefundPlugin\Validator\ShipmentRefundsBelongingToOrderValidator::class) + $services->set('sylius_refund.validator.shipment_refunds_belonging_to_order', ShipmentRefundsBelongingToOrderValidator::class) ->args([ service('sylius_refund.filter.unit_refund'), service('sylius_refund.doctrine.orm.query.count_shipment_refunds_belonging_to_order'), ]) ->tag('sylius_refund.validator.unit_refunds_belonging_to_order'); - $services->set('sylius_refund.validator.refund_amount', \Sylius\RefundPlugin\Validator\RefundAmountValidator::class) + $services->set('sylius_refund.validator.refund_amount', RefundAmountValidator::class) ->args([service('sylius_refund.provider.remaining_total')]); - $services->alias(\Sylius\RefundPlugin\Validator\RefundAmountValidatorInterface::class, 'sylius_refund.validator.refund_amount'); + $services->alias(RefundAmountValidatorInterface::class, 'sylius_refund.validator.refund_amount'); }; diff --git a/tests/Behat/Resources/services.php b/tests/Behat/Resources/services.php index e3b347406..a3862aadb 100644 --- a/tests/Behat/Resources/services.php +++ b/tests/Behat/Resources/services.php @@ -2,27 +2,52 @@ namespace Symfony\Component\DependencyInjection\Loader\Configurator; +use FriendsOfBehat\PageObjectExtension\Element\Element; +use Tests\Sylius\RefundPlugin\Behat\Context\Application\CreditMemoContext as ApplicationCreditMemoContext; +use Tests\Sylius\RefundPlugin\Behat\Context\Application\EmailsContext; +use Tests\Sylius\RefundPlugin\Behat\Context\Application\RefundingContext as ApplicationRefundingContext; +use Tests\Sylius\RefundPlugin\Behat\Context\Hook\CreditMemosContext; +use Tests\Sylius\RefundPlugin\Behat\Context\Setup\ChannelContext; +use Tests\Sylius\RefundPlugin\Behat\Context\Setup\OrderContext as SetupOrderContext; +use Tests\Sylius\RefundPlugin\Behat\Context\Setup\PaymentContext; +use Tests\Sylius\RefundPlugin\Behat\Context\Setup\ProductContext; +use Tests\Sylius\RefundPlugin\Behat\Context\Setup\RefundingContext as SetupRefundingContext; +use Tests\Sylius\RefundPlugin\Behat\Context\Transform\OrderContext as TransformOrderContext; +use Tests\Sylius\RefundPlugin\Behat\Context\Transform\PriceContext; +use Tests\Sylius\RefundPlugin\Behat\Context\Ui\CreditMemoContext as UiCreditMemoContext; +use Tests\Sylius\RefundPlugin\Behat\Context\Ui\ManagingOrdersContext; +use Tests\Sylius\RefundPlugin\Behat\Context\Ui\RefundingContext as UiRefundingContext; +use Tests\Sylius\RefundPlugin\Behat\Context\Ui\Shop\Customer\CreditMemoContext as ShopCustomerCreditMemoContext; +use Tests\Sylius\RefundPlugin\Behat\Element\PdfDownloadElement; +use Tests\Sylius\RefundPlugin\Behat\Page\Admin\CreditMemoDetailsPage; +use Tests\Sylius\RefundPlugin\Behat\Page\Admin\CreditMemoIndexPage; +use Tests\Sylius\RefundPlugin\Behat\Page\Admin\Order\ShowPage as AdminOrderShowPage; +use Tests\Sylius\RefundPlugin\Behat\Page\Admin\OrderRefundsPage; +use Tests\Sylius\RefundPlugin\Behat\Page\Shop\Order\ShowPage as ShopOrderShowPage; +use Tests\Sylius\RefundPlugin\Behat\Services\Factory\FailedRefundPaymentFactory; +use Tests\Sylius\RefundPlugin\Behat\Services\Generator\FailedCreditMemoGenerator; + return static function (ContainerConfigurator $container) { $services = $container->services(); $parameters = $container->parameters(); - $parameters->set('sylius.behat.page.admin.order.show.class', \Tests\Sylius\RefundPlugin\Behat\Page\Admin\Order\ShowPage::class); - $parameters->set('sylius.behat.page.shop.order.show.class', \Tests\Sylius\RefundPlugin\Behat\Page\Shop\Order\ShowPage::class); + $parameters->set('sylius.behat.page.admin.order.show.class', AdminOrderShowPage::class); + $parameters->set('sylius.behat.page.shop.order.show.class', ShopOrderShowPage::class); $services->defaults() ->public(); - $services->set(\Tests\Sylius\RefundPlugin\Behat\Page\Admin\OrderRefundsPage::class) + $services->set(OrderRefundsPage::class) ->parent('sylius.behat.symfony_page'); - $services->set(\Tests\Sylius\RefundPlugin\Behat\Page\Admin\CreditMemoDetailsPage::class) + $services->set(CreditMemoDetailsPage::class) ->parent('sylius.behat.symfony_page') ->args([service('sylius.behat.table_accessor')]); - $services->set(\Tests\Sylius\RefundPlugin\Behat\Page\Admin\CreditMemoIndexPage::class) + $services->set(CreditMemoIndexPage::class) ->parent('sylius.behat.page.admin.crud.index') ->args(['sylius_refund_admin_credit_memo_index']); - $services->set(\FriendsOfBehat\PageObjectExtension\Element\Element::class) + $services->set(Element::class) ->private() ->abstract() ->args([ @@ -30,11 +55,11 @@ service('behat.mink.parameters'), ]); - $services->set(\Tests\Sylius\RefundPlugin\Behat\Element\PdfDownloadElement::class) + $services->set(PdfDownloadElement::class) ->private() - ->parent(\FriendsOfBehat\PageObjectExtension\Element\Element::class); + ->parent(Element::class); - $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Application\RefundingContext::class) + $services->set(ApplicationRefundingContext::class) ->args([ service('sylius.repository.order'), service('sylius_refund.repository.refund'), @@ -43,70 +68,70 @@ service('sylius.behat.email_checker'), ]); - $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Application\CreditMemoContext::class) + $services->set(ApplicationCreditMemoContext::class) ->args([ service('sylius_refund.repository.credit_memo'), service('sylius_refund.provider.current_date_time_immutable'), '%sylius_refund.credit_memo_save_path%', ]); - $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Ui\ManagingOrdersContext::class) + $services->set(ManagingOrdersContext::class) ->args([ service('sylius.behat.page.admin.order.show'), service('sylius.behat.page.admin.order.index'), service('sylius.behat.notification_checker.shop'), ]); - $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Ui\RefundingContext::class) + $services->set(UiRefundingContext::class) ->args([ - service(\Tests\Sylius\RefundPlugin\Behat\Page\Admin\OrderRefundsPage::class), + service(OrderRefundsPage::class), service('sylius.behat.notification_checker.admin'), service('sylius.behat.email_checker'), ]); - $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Ui\CreditMemoContext::class) + $services->set(UiCreditMemoContext::class) ->args([ service('sylius.behat.page.admin.order.show'), - service(\Tests\Sylius\RefundPlugin\Behat\Page\Admin\CreditMemoIndexPage::class), - service(\Tests\Sylius\RefundPlugin\Behat\Page\Admin\CreditMemoDetailsPage::class), - service(\Tests\Sylius\RefundPlugin\Behat\Element\PdfDownloadElement::class), + service(CreditMemoIndexPage::class), + service(CreditMemoDetailsPage::class), + service(PdfDownloadElement::class), service('sylius_refund.repository.credit_memo'), service('sylius_refund.provider.current_date_time_immutable'), ]); - $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Setup\RefundingContext::class) + $services->set(SetupRefundingContext::class) ->args([ service('sylius.repository.order'), service('sylius.command_bus'), - service(\Tests\Sylius\RefundPlugin\Behat\Services\Generator\FailedCreditMemoGenerator::class), - service(\Tests\Sylius\RefundPlugin\Behat\Services\Factory\FailedRefundPaymentFactory::class), + service(FailedCreditMemoGenerator::class), + service(FailedRefundPaymentFactory::class), ]); - $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Setup\OrderContext::class) + $services->set(SetupOrderContext::class) ->args([ service('sylius.manager.order'), service('sylius.behat.shared_storage'), service('sylius_abstraction.state_machine'), ]); - $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Setup\PaymentContext::class) + $services->set(PaymentContext::class) ->args([ service('sylius_abstraction.state_machine'), service('sylius.behat.shared_storage'), ]); - $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Transform\OrderContext::class) + $services->set(TransformOrderContext::class) ->args([service('sylius.repository.order')]); - $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Transform\PriceContext::class); + $services->set(PriceContext::class); - $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Ui\Shop\Customer\CreditMemoContext::class) + $services->set(ShopCustomerCreditMemoContext::class) ->args([ service('sylius.behat.page.shop.order.show'), - service(\Tests\Sylius\RefundPlugin\Behat\Element\PdfDownloadElement::class), + service(PdfDownloadElement::class), ]); - $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Setup\ChannelContext::class) + $services->set(ChannelContext::class) ->args([ service('sylius.behat.shared_storage'), service('sylius.behat.factory.default_united_states_channel'), @@ -114,21 +139,21 @@ service('sylius.manager.channel'), ]); - $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Application\EmailsContext::class) + $services->set(EmailsContext::class) ->args([service('sylius.behat.email_checker')]); - $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Setup\ProductContext::class) + $services->set(ProductContext::class) ->args([service('sylius.behat.context.setup.product')]); - $services->set(\Tests\Sylius\RefundPlugin\Behat\Context\Hook\CreditMemosContext::class) + $services->set(CreditMemosContext::class) ->args(['%sylius_refund.credit_memo_save_path%']); - $services->set(\Tests\Sylius\RefundPlugin\Behat\Services\Factory\FailedRefundPaymentFactory::class) + $services->set(FailedRefundPaymentFactory::class) ->private() ->decorate('sylius_refund.factory.refund_payment') ->args([service('.inner')]); - $services->set(\Tests\Sylius\RefundPlugin\Behat\Services\Generator\FailedCreditMemoGenerator::class) + $services->set(FailedCreditMemoGenerator::class) ->private() ->decorate('sylius_refund.generator.credit_memo') ->args([service('.inner')]);