From a298565a8f5ba5de0121de3275fa2c91b7520b5f Mon Sep 17 00:00:00 2001 From: Simon Krull Date: Wed, 22 Jul 2026 06:20:57 +0200 Subject: [PATCH 1/2] [Maintenance] [XML2PHP] convert service definition configs from xml to PHP --- config/config.yaml | 1 - config/services.php | 72 ++++++ config/services/controller.php | 51 +++++ config/services/controller.xml | 52 ----- config/services/event_listener.php | 31 +++ config/services/event_listener.xml | 22 -- config/services/fixture.php | 114 ++++++++++ config/services/fixture.xml | 95 -------- config/services/form.php | 209 ++++++++++++++++++ config/services/form.xml | 180 --------------- config/services/media_provider.php | 45 ++++ config/services/media_provider.xml | 32 --- config/services/renderer.php | 136 ++++++++++++ config/services/renderer.xml | 143 ------------ config/services/resolver.php | 90 ++++++++ config/services/resolver.xml | 62 ------ config/services/twig.php | 29 +++ config/services/twig.xml | 23 -- config/services/twig/component.php | 89 ++++++++ config/services/twig/component.xml | 96 -------- config/services/twig/extension.php | 50 +++++ config/services/twig/extension.xml | 39 ---- config/services/twig/runtime.php | 79 +++++++ config/services/twig/runtime.xml | 59 ----- .../SyliusCmsExtension.php | 6 + 25 files changed, 1001 insertions(+), 804 deletions(-) create mode 100644 config/services.php create mode 100644 config/services/controller.php delete mode 100644 config/services/controller.xml create mode 100644 config/services/event_listener.php delete mode 100644 config/services/event_listener.xml create mode 100644 config/services/fixture.php delete mode 100644 config/services/fixture.xml create mode 100644 config/services/form.php delete mode 100644 config/services/form.xml create mode 100644 config/services/media_provider.php delete mode 100644 config/services/media_provider.xml create mode 100644 config/services/renderer.php delete mode 100644 config/services/renderer.xml create mode 100644 config/services/resolver.php delete mode 100644 config/services/resolver.xml create mode 100644 config/services/twig.php delete mode 100644 config/services/twig.xml create mode 100644 config/services/twig/component.php delete mode 100644 config/services/twig/component.xml create mode 100644 config/services/twig/extension.php delete mode 100644 config/services/twig/extension.xml create mode 100644 config/services/twig/runtime.php delete mode 100644 config/services/twig/runtime.xml diff --git a/config/config.yaml b/config/config.yaml index 663d8f9e..9a8a7bea 100755 --- a/config/config.yaml +++ b/config/config.yaml @@ -1,6 +1,5 @@ imports: - { resource: "@SyliusCmsPlugin/config/grids.yaml" } - - { resource: "@SyliusCmsPlugin/config/services.xml" } - { resource: "@SyliusCmsPlugin/config/fixtures/*.yaml"} - { resource: '@SyliusCmsPlugin/config/twig_hooks/**/*.yaml' } diff --git a/config/services.php b/config/services.php new file mode 100644 index 00000000..efeb1ec3 --- /dev/null +++ b/config/services.php @@ -0,0 +1,72 @@ +services(); + $parameters = $container->parameters(); + $container->import('services/**/*.php'); + + $parameters->set('sylius_cms.media_provider.interface', ProviderInterface::class); + + $services->defaults() + ->public(); + + $services->set('sylius_cms.registry.media_provider', ServiceRegistry::class) + ->args([ + '%sylius_cms.media_provider.interface%', + 'Media provider', + ]); + + $services->set('sylius_cms.media_uploader.image', MediaUploader::class) + ->args([service('sylius_cms.media.filesystem.image')]); + + $services->set('sylius_cms.media_uploader.video', MediaUploader::class) + ->args([service('sylius_cms.media.filesystem.video')]); + + $services->set('sylius_cms.media_uploader.file', MediaUploader::class) + ->args([service('sylius_cms.media.filesystem.file')]); + + $services->set('sylius_cms.media.filesystem.image', FlysystemFilesystemAdapter::class) + ->args([service('sylius_cms_media.image.storage')]); + + $services->set('sylius_cms.media.filesystem.video', FlysystemFilesystemAdapter::class) + ->args([service('sylius_cms_media.video.storage')]); + + $services->set('sylius_cms.media.filesystem.file', FlysystemFilesystemAdapter::class) + ->args([service('sylius_cms_media.file.storage')]); + + $services->set('sylius_cms.sorter.collections', CollectionsSorter::class); + + $services->set('sylius_cms.context.locale.admin_preview', PreviewLocaleContext::class) + ->args([ + service('sylius.section_resolver.uri_based'), + service('request_stack'), + service('sylius.provider.locale'), + ]) + ->tag('sylius.context.locale', ['priority' => 256]); + + $services->set('sylius_cms.provider.resource_template', ResourceTemplateProvider::class) + ->args([service('parameter_bag')]); + + $services->set('sylius_cms.menu.reorder', MenuReorder::class); + + $services->set(EnabledAndAvailableExtension::class) + ->args([ + service(UserContextInterface::class), + service('sylius.context.channel'), + ]) + ->tag('api_platform.doctrine.orm.query_extension.collection') + ->tag('api_platform.doctrine.orm.query_extension.item'); +}; diff --git a/config/services/controller.php b/config/services/controller.php new file mode 100644 index 00000000..dc458f79 --- /dev/null +++ b/config/services/controller.php @@ -0,0 +1,51 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_cms.controller.action.admin.upload_editor_image', UploadEditorImageAction::class) + ->args([ + service('sylius_cms.resolver.media_provider'), + service('sylius_cms.repository.media'), + service('sylius_cms.factory.media'), + ]); + + $services->set('sylius_cms.controller.helper.form_errors_flash', FormErrorsFlashHelper::class) + ->args([ + service('request_stack'), + service('translator'), + ]); + + $services->set('sylius_cms.controller.media.overriden', MediaController::class) + ->parent('sylius_cms.controller.media') + ->call('setMediaProviderResolver', [service('sylius_cms.resolver.media_provider')]) + ->call('setMediaResourceResolver', [service('sylius_cms.resolver.media_resource')]) + ->call('setFormErrorsFlashHelper', [service('sylius_cms.controller.helper.form_errors_flash')]) + ->call('setCacheManager', [service('liip_imagine.cache.manager')]) + ->call('setDataManager', [service('liip_imagine.data.manager')]); + + $services->set('sylius_cms.controller.page.overriden', PageController::class) + ->parent('sylius_cms.controller.page') + ->call('setFormErrorsFlashHelper', [service('sylius_cms.controller.helper.form_errors_flash')]) + ->call('setCacheManager', [service('liip_imagine.cache.manager')]) + ->call('setDataManager', [service('liip_imagine.data.manager')]); +}; diff --git a/config/services/controller.xml b/config/services/controller.xml deleted file mode 100644 index a3cd0233..00000000 --- a/config/services/controller.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/event_listener.php b/config/services/event_listener.php new file mode 100644 index 00000000..4aae05cd --- /dev/null +++ b/config/services/event_listener.php @@ -0,0 +1,31 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_cms.menu.content_management', ContentManagementMenuBuilder::class) + ->args([service('sylius_cms.menu.reorder')]) + ->tag('kernel.event_listener', ['event' => 'sylius.menu.admin.main', 'method' => 'buildMenu']); + + $services->set('sylius_cms.event_listener.media_upload', MediaUploadListener::class) + ->args([service('sylius_cms.resolver.media_provider')]) + ->tag('kernel.event_listener', ['event' => 'sylius_cms.media.pre_create', 'method' => 'uploadMedia']) + ->tag('kernel.event_listener', ['event' => 'sylius_cms.media.pre_update', 'method' => 'uploadMedia']); +}; diff --git a/config/services/event_listener.xml b/config/services/event_listener.xml deleted file mode 100644 index bc71c6cc..00000000 --- a/config/services/event_listener.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/config/services/fixture.php b/config/services/fixture.php new file mode 100644 index 00000000..3b273124 --- /dev/null +++ b/config/services/fixture.php @@ -0,0 +1,114 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_cms.fixture.assigner.channels', ChannelsAssigner::class) + ->args([service('sylius.repository.channel')]); + + $services->set('sylius_cms.fixture.assigner.products', ProductsAssigner::class) + ->args([service('sylius.repository.product')]); + + $services->set('sylius_cms.fixture.assigner.taxons', TaxonsAssigner::class) + ->args([service('sylius.repository.taxon')]); + + $services->set('sylius_cms.fixture.assigner.collections', CollectionsAssigner::class) + ->args([service('sylius_cms.repository.collection')]); + + $services->set('sylius_cms.fixture.assigner.products_in_taxons', ProductsInTaxonsAssigner::class) + ->args([service('sylius.repository.taxon')]); + + $services->set('sylius_cms.fixture.block', BlockFixture::class) + ->args([service('sylius_cms.fixture.factory.block')]) + ->tag('sylius_fixtures.fixture'); + + $services->set('sylius_cms.fixture.page', PageFixture::class) + ->args([service('sylius_cms.fixture.factory.page')]) + ->tag('sylius_fixtures.fixture'); + + $services->set('sylius_cms.fixture.collection', CollectionFixture::class) + ->args([service('sylius_cms.fixture.factory.collection')]) + ->tag('sylius_fixtures.fixture'); + + $services->set('sylius_cms.fixture.media', MediaFixture::class) + ->args([service('sylius_cms.fixture.factory.media')]) + ->tag('sylius_fixtures.fixture'); + + $services->set('sylius_cms.fixture.template', TemplateFixture::class) + ->args([service('sylius_cms.fixture.factory.template')]) + ->tag('sylius_fixtures.fixture'); + + $services->set('sylius_cms.fixture.factory.block', BlockFixtureFactory::class) + ->args([ + service('sylius_cms.factory.block'), + service('sylius_cms.repository.block'), + service('sylius_cms.fixture.assigner.collections'), + service('sylius_cms.fixture.assigner.channels'), + service('sylius_cms.fixture.assigner.products'), + service('sylius_cms.fixture.assigner.taxons'), + service('sylius_cms.fixture.assigner.products_in_taxons'), + ]); + + $services->set('sylius_cms.fixture.factory.page', PageFixtureFactory::class) + ->args([ + service('sylius_cms.factory.page'), + service('sylius_cms.factory.page_translation'), + service('sylius_cms.repository.page'), + service('sylius_cms.repository.media'), + service('sylius_cms.fixture.assigner.collections'), + service('sylius_cms.fixture.assigner.channels'), + ]); + + $services->set('sylius_cms.fixture.factory.collection', CollectionFixtureFactory::class) + ->args([ + service('sylius_cms.factory.collection'), + service('sylius_cms.repository.collection'), + service('sylius_cms.repository.page'), + ]); + + $services->set('sylius_cms.fixture.factory.media', MediaFixtureFactory::class) + ->args([ + service('sylius_cms.factory.media'), + service('sylius_cms.factory.media_translation'), + service('sylius_cms.resolver.media_provider'), + service('sylius_cms.repository.media'), + service('sylius_cms.fixture.assigner.collections'), + service('sylius_cms.fixture.assigner.channels'), + ]); + + $services->set('sylius_cms.fixture.factory.template', TemplateFixtureFactory::class) + ->args([ + service('sylius_cms.factory.template'), + service('sylius_cms.repository.template'), + ]); +}; diff --git a/config/services/fixture.xml b/config/services/fixture.xml deleted file mode 100644 index 5f120887..00000000 --- a/config/services/fixture.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/form.php b/config/services/form.php new file mode 100644 index 00000000..42a74f7e --- /dev/null +++ b/config/services/form.php @@ -0,0 +1,209 @@ +services(); + $parameters = $container->parameters(); + $parameters->set('sylius_cms.content_elements.type.single_media', SingleMediaContentElementType::TYPE); + $parameters->set('sylius_cms.content_elements.type.multiple_media', MultipleMediaContentElementType::TYPE); + $parameters->set('sylius_cms.content_elements.type.products_carousel_by_taxon', ProductsCarouselByTaxonContentElementType::TYPE); + $parameters->set('sylius_cms.content_elements.type.products_grid_by_taxon', ProductsGridByTaxonContentElementType::TYPE); + $parameters->set('sylius_cms.content_elements.type.pages_collection', PagesCollectionContentElementType::TYPE); + + $services->set('sylius_cms.form.type.block', BlockType::class) + ->args([ + '%sylius_cms.model.block.class%', + '%sylius_cms.form.type.block.validation_groups%', + service('sylius_cms.provider.resource_template'), + service('sylius.provider.locale'), + ]) + ->tag('form.type'); + + $services->set('sylius_cms.form.type.content_configuration', ContentConfigurationType::class) + ->args([ + tagged_iterator('sylius_cms.content_elements.type', indexAttribute: 'key'), + service('twig'), + ]) + ->tag('form.type'); + + $services->set('sylius_cms.form.type.page', PageType::class) + ->args([ + '%sylius_cms.model.page.class%', + '%sylius_cms.form.type.page.validation_groups%', + service('sylius_cms.provider.resource_template'), + service('sylius.provider.locale'), + ]) + ->tag('form.type'); + + $services->set('sylius_cms.form.type.translation.page', PageTranslationType::class) + ->args([ + '%sylius_cms.model.page_translation.class%', + '%sylius_cms.form.type.translation.page.validation_groups%', + ]) + ->tag('form.type'); + + $services->set('sylius_cms.form.type.collection', CollectionType::class) + ->args([ + '%sylius_cms.model.collection.class%', + '%sylius_cms.form.type.collection.validation_groups%', + ]) + ->tag('form.type'); + + $services->set('sylius_cms.form.type.translation.media', MediaTranslationType::class) + ->args([ + '%sylius_cms.model.media_translation.class%', + '%sylius_cms.form.type.translation.media.validation_groups%', + ]) + ->tag('form.type'); + + $services->set('sylius_cms.form.type.media', MediaType::class) + ->args([ + '%sylius_cms.model.media.class%', + '%sylius_cms.form.type.media.validation_groups%', + '%sylius_cms.media_providers%', + ]) + ->tag('form.type'); + + $services->set('sylius_cms.form.type.template', TemplateType::class) + ->args([ + '%sylius_cms.model.template.class%', + '%sylius_cms.form.type.template.validation_groups%', + ]) + ->tag('form.type'); + + $services->set('sylius_cms.form.type.content_element', ContentElementType::class) + ->tag('form.type'); + + $services->set('sylius_cms.form.type.content_element.single_media', SingleMediaContentElementType::class) + ->args([ + service('sylius_cms.repository.media'), + service('sylius_cms.form.data_transformer.content_element_checker'), + ]) + ->tag('sylius_cms.content_elements.type', ['key' => '%sylius_cms.content_elements.type.single_media%']) + ->tag('form.type'); + + $services->set('sylius_cms.form.type.content_element.multiple_media', MultipleMediaContentElementType::class) + ->args([service('sylius_cms.form.type.data_transformer.multiple_media_to_codes')]) + ->tag('sylius_cms.content_elements.type', ['key' => '%sylius_cms.content_elements.type.multiple_media%']) + ->tag('form.type'); + + $services->set('sylius_cms.form.type.content_element.products_carousel_by_taxon', ProductsCarouselByTaxonContentElementType::class) + ->args([ + service('sylius.repository.taxon'), + service('sylius_cms.form.data_transformer.content_element_checker'), + ]) + ->tag('sylius_cms.content_elements.type', ['key' => '%sylius_cms.content_elements.type.products_carousel_by_taxon%']) + ->tag('form.type'); + + $services->set('sylius_cms.form.type.content_element.products_grid_by_taxon', ProductsGridByTaxonContentElementType::class) + ->args([ + service('sylius.repository.taxon'), + service('sylius_cms.form.data_transformer.content_element_checker'), + ]) + ->tag('sylius_cms.content_elements.type', ['key' => '%sylius_cms.content_elements.type.products_grid_by_taxon%']) + ->tag('form.type'); + + $services->set('sylius_cms.form.type.content_element.pages_collection', PagesCollectionContentElementType::class) + ->args([ + service('sylius_cms.repository.collection'), + service('sylius_cms.form.data_transformer.content_element_checker'), + ]) + ->tag('sylius_cms.content_elements.type', ['key' => '%sylius_cms.content_elements.type.pages_collection%']) + ->tag('form.type'); + + $services->set('sylius_cms.form.type.wysiwyg', WysiwygType::class) + ->args([service('sylius_cms.resolver.wysiwyg_strategy_resolver')]) + ->call('setStrategy', ['%sylius_cms.wysiwyg_editor%']) + ->tag('form.type'); + + $services->set('sylius_cms.form.type.data_transformer.multiple_media_to_codes', MultipleMediaToCodesTransformer::class) + ->args([service('sylius_cms.repository.media')]); + + $services->set('sylius_cms.form.data_transformer.content_element_checker', ContentElementDataTransformerChecker::class); + + $services->set('sylius_cms.form.wysiwyg_strategy.trix', TrixStrategy::class) + ->tag('sylius_cms.wysiwyg_strategy', ['strategy' => 'trix']); + + $services->set('sylius_cms.form.wysiwyg_strategy.quill', QuillStrategy::class) + ->tag('sylius_cms.wysiwyg_strategy', ['strategy' => 'quill']); + + $services->set('sylius_cms.form.type.page_autocomplete', PageAutocompleteType::class) + ->args(['%sylius_cms.model.page.class%']) + ->tag('form.type') + ->tag('ux.entity_autocomplete_field'); + + $services->set('sylius_cms.form.type.block_autocomplete', BlockAutocompleteType::class) + ->args(['%sylius_cms.model.block.class%']) + ->tag('form.type') + ->tag('ux.entity_autocomplete_field'); + + $services->set('sylius_cms.form.type.media_autocomplete', MediaAutocompleteType::class) + ->args(['%sylius_cms.model.media.class%']) + ->tag('form.type') + ->tag('ux.entity_autocomplete_field'); + + $services->set('sylius_cms.form.type.collection_autocomplete', CollectionAutocompleteType::class) + ->args(['%sylius_cms.model.collection.class%']) + ->tag('form.type') + ->tag('ux.entity_autocomplete_field'); + + $services->set('sylius_cms.form.type.admin.template_autocomplete', TemplateAutocompleteType::class) + ->args(['%sylius_cms.model.template.class%']) + ->tag('form.type') + ->tag('ux.entity_autocomplete_field'); + + $services->set('sylius_cms.form.type.admin.content_configuration_translations', ContentConfigurationTranslationsType::class) + ->args([service('sylius.provider.translation_locale.admin')]) + ->tag('form.type'); + + $services->set('sylius_cms.form.type.content_element_choice', ContentElementChoiceType::class) + ->args([tagged_iterator('sylius_cms.content_elements.type', indexAttribute: 'key')]) + ->tag('form.type'); + + $services->set('sylius_cms.form.type.admin.content_element_configuration', ContentElementConfigurationType::class) + ->args([ + ContentConfiguration::class, + '%sylius_cms.form.type.content_configuration.validation_groups%', + tagged_iterator('sylius_cms.content_elements.type', indexAttribute: 'key'), + ]) + ->tag('form.type'); +}; diff --git a/config/services/form.xml b/config/services/form.xml deleted file mode 100644 index c6be280d..00000000 --- a/config/services/form.xml +++ /dev/null @@ -1,180 +0,0 @@ - - - - - Sylius\CmsPlugin\Form\Type\ContentElements\SingleMediaContentElementType::TYPE - Sylius\CmsPlugin\Form\Type\ContentElements\MultipleMediaContentElementType::TYPE - Sylius\CmsPlugin\Form\Type\ContentElements\ProductsCarouselByTaxonContentElementType::TYPE - Sylius\CmsPlugin\Form\Type\ContentElements\ProductsGridByTaxonContentElementType::TYPE - Sylius\CmsPlugin\Form\Type\ContentElements\PagesCollectionContentElementType::TYPE - - - - - %sylius_cms.model.block.class% - %sylius_cms.form.type.block.validation_groups% - - - - - - - - - - - - - %sylius_cms.model.page.class% - %sylius_cms.form.type.page.validation_groups% - - - - - - - %sylius_cms.model.page_translation.class% - %sylius_cms.form.type.translation.page.validation_groups% - - - - - %sylius_cms.model.collection.class% - %sylius_cms.form.type.collection.validation_groups% - - - - - %sylius_cms.model.media_translation.class% - %sylius_cms.form.type.translation.media.validation_groups% - - - - - %sylius_cms.model.media.class% - %sylius_cms.form.type.media.validation_groups% - %sylius_cms.media_providers% - - - - - %sylius_cms.model.template.class% - %sylius_cms.form.type.template.validation_groups% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %sylius_cms.wysiwyg_editor% - - - - - - - - - - - - - - - - - - - - %sylius_cms.model.page.class% - - - - - - %sylius_cms.model.block.class% - - - - - - %sylius_cms.model.media.class% - - - - - - %sylius_cms.model.collection.class% - - - - - - %sylius_cms.model.template.class% - - - - - - - - - - - - - - - - - - Sylius\CmsPlugin\Entity\ContentConfiguration - %sylius_cms.form.type.content_configuration.validation_groups% - - - - - - diff --git a/config/services/media_provider.php b/config/services/media_provider.php new file mode 100644 index 00000000..7ca74ca2 --- /dev/null +++ b/config/services/media_provider.php @@ -0,0 +1,45 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_cms.media_provider.image', GenericProvider::class) + ->args([ + service('sylius_cms.media_uploader.image'), + service('twig'), + '@SyliusCmsPlugin/shop/media/show/image.html.twig', + ]) + ->tag('sylius_cms.media_provider', ['type' => 'image', 'label' => 'sylius_cms.ui.image_provider']); + + $services->set('sylius_cms.media_provider.video', GenericProvider::class) + ->args([ + service('sylius_cms.media_uploader.video'), + service('twig'), + '@SyliusCmsPlugin/shop/media/show/video.html.twig', + ]) + ->tag('sylius_cms.media_provider', ['type' => 'video', 'label' => 'sylius_cms.ui.video_provider']); + + $services->set('sylius_cms.media_provider.file', GenericProvider::class) + ->args([ + service('sylius_cms.media_uploader.file'), + service('twig'), + '@SyliusCmsPlugin/shop/media/show/file.html.twig', + ]) + ->tag('sylius_cms.media_provider', ['type' => 'file', 'label' => 'sylius_cms.ui.file_provider']); +}; diff --git a/config/services/media_provider.xml b/config/services/media_provider.xml deleted file mode 100644 index a35483a4..00000000 --- a/config/services/media_provider.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - @SyliusCmsPlugin/shop/media/show/image.html.twig - - - - - - - @SyliusCmsPlugin/shop/media/show/video.html.twig - - - - - - - @SyliusCmsPlugin/shop/media/show/file.html.twig - - - - diff --git a/config/services/renderer.php b/config/services/renderer.php new file mode 100644 index 00000000..13f07f45 --- /dev/null +++ b/config/services/renderer.php @@ -0,0 +1,136 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_cms.content_element_renderer_strategy', ContentElementRendererStrategy::class) + ->args([ + service('sylius_cms.twig.parser.content'), + service('sylius.context.locale'), + tagged_iterator('sylius_cms.content_element'), + ]); + + $services->set('sylius_cms.content_element.textarea', TextareaContentElementRenderer::class) + ->tag('sylius_cms.content_element', ['template' => '@SyliusCmsPlugin/shop/content_element/elements/textarea.html.twig', 'form_type' => \Sylius\CmsPlugin\Form\Type\ContentElements\TextareaContentElementType::class]); + + $services->set('sylius_cms.content_element.single_media', SingleMediaContentElementRenderer::class) + ->args([ + service('sylius_cms.twig.runtime.media'), + service('sylius_cms.repository.media'), + ]) + ->tag('sylius_cms.content_element', ['template' => '@SyliusCmsPlugin/shop/content_element/elements/single_media.html.twig']); + + $services->set('sylius_cms.content_element.multiple_media', MultipleMediaContentElementRenderer::class) + ->args([ + service('sylius_cms.twig.runtime.media'), + service('sylius_cms.repository.media'), + ]) + ->tag('sylius_cms.content_element', ['template' => '@SyliusCmsPlugin/shop/content_element/elements/multiple_media.html.twig']); + + $services->set('sylius_cms.content_element.heading', HeadingContentElementRenderer::class) + ->tag('sylius_cms.content_element', ['template' => '@SyliusCmsPlugin/shop/content_element/elements/heading.html.twig', 'form_type' => \Sylius\CmsPlugin\Form\Type\ContentElements\HeadingContentElementType::class]); + + $services->set('sylius_cms.products_provider', ProductsProvider::class) + ->args([ + service('sylius.repository.product'), + service('sylius.context.channel'), + ]); + + $services->alias(ProductsProviderInterface::class, 'sylius_cms.products_provider'); + + $services->set('sylius_cms.content_element.products_carousel', ProductsCarouselContentElementRenderer::class) + ->args([ + service('sylius_cms.products_provider'), + service('sylius.context.channel'), + ]) + ->tag('sylius_cms.content_element', ['template' => '@SyliusCmsPlugin/shop/content_element/elements/products_carousel.html.twig', 'form_type' => \Sylius\CmsPlugin\Form\Type\ContentElements\ProductsCarouselContentElementType::class]); + + $services->set('sylius_cms.content_element.products_carousel_by_taxon', ProductsCarouselByTaxonContentElementRenderer::class) + ->args([ + service('sylius_cms.products_provider'), + service('sylius.context.channel'), + service('sylius.repository.taxon')->nullOnInvalid(), + ]) + ->tag('sylius_cms.content_element', ['template' => '@SyliusCmsPlugin/shop/content_element/elements/products_carousel.html.twig']); + + $services->set('sylius_cms.content_element.products_grid', ProductsGridContentElementRenderer::class) + ->args([ + service('sylius_cms.products_provider'), + service('sylius.context.channel'), + ]) + ->tag('sylius_cms.content_element', ['template' => '@SyliusCmsPlugin/shop/content_element/elements/products_grid.html.twig', 'form_type' => \Sylius\CmsPlugin\Form\Type\ContentElements\ProductsGridContentElementType::class]); + + $services->set('sylius_cms.content_element.products_grid_by_taxon', ProductsGridByTaxonContentElementRenderer::class) + ->args([ + service('sylius_cms.products_provider'), + service('sylius.context.channel'), + service('sylius.repository.taxon')->nullOnInvalid(), + ]) + ->tag('sylius_cms.content_element', ['template' => '@SyliusCmsPlugin/shop/content_element/elements/products_grid.html.twig']); + + $services->set('sylius_cms.content_element.taxons_list', TaxonsListContentElementRenderer::class) + ->args([service('sylius.repository.taxon')]) + ->tag('sylius_cms.content_element', ['template' => '@SyliusCmsPlugin/shop/content_element/elements/taxons_list.html.twig', 'form_type' => \Sylius\CmsPlugin\Form\Type\ContentElements\TaxonsListContentElementType::class]); + + $services->set('sylius_cms.content_element.pages_collection', PagesCollectionContentElementRenderer::class) + ->args([service('sylius_cms.repository.collection')]) + ->tag('sylius_cms.content_element', ['template' => '@SyliusCmsPlugin/shop/content_element/elements/pages_collection.html.twig']); + + $services->set('sylius_cms.content_element.spacer', SpacerContentElementRenderer::class) + ->tag('sylius_cms.content_element', ['template' => '@SyliusCmsPlugin/shop/content_element/elements/spacer.html.twig', 'form_type' => \Sylius\CmsPlugin\Form\Type\ContentElements\SpacerContentElementType::class]); + + $services->set('sylius_cms.collection_renderer_strategy', CollectionRendererStrategy::class) + ->args([tagged_iterator('sylius_cms.renderer.collection')]); + + $services->set('sylius_cms.renderer.collection.blocks', CollectionBlocksRenderer::class) + ->args([service('sylius_cms.content_element_renderer_strategy')]) + ->tag('sylius_cms.renderer.collection'); + + $services->set('sylius_cms.renderer.collection.media', CollectionMediaRenderer::class) + ->args([service('sylius_cms.twig.runtime.media')]) + ->tag('sylius_cms.renderer.collection'); + + $services->set('sylius_cms.renderer.collection.pages', CollectionPagesRenderer::class) + ->args([service('sylius_cms.page_link_renderer')]) + ->tag('sylius_cms.renderer.collection'); + + $services->set('sylius_cms.page_link_renderer', PageLinkRenderer::class) + ->args([ + service('router.default'), + service('twig'), + ]); +}; diff --git a/config/services/renderer.xml b/config/services/renderer.xml deleted file mode 100644 index fb878d94..00000000 --- a/config/services/renderer.xml +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/resolver.php b/config/services/resolver.php new file mode 100644 index 00000000..66c719ee --- /dev/null +++ b/config/services/resolver.php @@ -0,0 +1,90 @@ +services(); + + $services->defaults() + ->private(); + + $services->set('sylius_cms.resolver.resource.page', ResourceResolver::class) + ->args([ + service('sylius_cms.repository.page'), + service('sylius_cms.factory.page'), + 'code', + ]); + + $services->set('sylius_cms.resolver.resource.collection', ResourceResolver::class) + ->args([ + service('sylius_cms.repository.collection'), + service('sylius_cms.factory.collection'), + 'code', + ]); + + $services->set('sylius_cms.resolver.resource.block', ResourceResolver::class) + ->args([ + service('sylius_cms.repository.block'), + service('sylius_cms.factory.block'), + 'code', + ]); + + $services->set('sylius_cms.resolver.resource.media', ResourceResolver::class) + ->args([ + service('sylius_cms.repository.media'), + service('sylius_cms.factory.media'), + 'code', + ]); + + $services->set('sylius_cms.resolver.block_resource', BlockResourceResolver::class) + ->args([ + service('sylius_cms.repository.block'), + service('logger'), + service('sylius.context.channel'), + ]); + + $services->set('sylius_cms.resolver.collection_resource', CollectionResourceResolver::class) + ->args([ + service('sylius_cms.repository.collection'), + service('logger'), + ]); + + $services->set('sylius_cms.resolver.page_resource', PageResourceResolver::class) + ->args([ + service('sylius_cms.repository.page'), + service('logger'), + ]); + + $services->set('sylius_cms.resolver.media_resource', MediaResourceResolver::class) + ->args([ + service('sylius_cms.repository.media'), + service('sylius.context.channel'), + service('logger'), + ]); + + $services->set('sylius_cms.resolver.media_provider', MediaProviderResolver::class) + ->args([service('sylius_cms.registry.media_provider')]); + + $services->set('sylius_cms.resolver.wysiwyg_strategy_resolver', WysiwygStrategyResolver::class) + ->args([ + tagged_iterator('sylius_cms.wysiwyg_strategy', indexAttribute: 'strategy'), + '%sylius_cms.wysiwyg_editor%', + ]); +}; diff --git a/config/services/resolver.xml b/config/services/resolver.xml deleted file mode 100644 index cb039fd1..00000000 --- a/config/services/resolver.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - code - - - - - - code - - - - - - code - - - - - - code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %sylius_cms.wysiwyg_editor% - - - diff --git a/config/services/twig.php b/config/services/twig.php new file mode 100644 index 00000000..08b902b8 --- /dev/null +++ b/config/services/twig.php @@ -0,0 +1,29 @@ +services(); + $parameters = $container->parameters(); + $parameters->set('sylius_cms.twig.admin_functions', ['sylius_cms_render_block', 'sylius_cms_render_media']); + + $services->defaults() + ->private(); + + $services->set('sylius_cms.twig.parser.content', ContentParser::class) + ->args([ + service('twig'), + '%sylius_cms.twig.admin_functions%', + ]); +}; diff --git a/config/services/twig.xml b/config/services/twig.xml deleted file mode 100644 index 7e403343..00000000 --- a/config/services/twig.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - sylius_cms_render_block - sylius_cms_render_media - - - - - - - - - %sylius_cms.twig.admin_functions% - - - diff --git a/config/services/twig/component.php b/config/services/twig/component.php new file mode 100644 index 00000000..7d5a0422 --- /dev/null +++ b/config/services/twig/component.php @@ -0,0 +1,89 @@ +services(); + + $services->defaults() + ->private(); + + $services->set('sylius_cms.twig.component.template.form', ResourceFormComponent::class) + ->args([ + service('sylius_cms.repository.template'), + service('form.factory'), + '%sylius_cms.model.template.class%', + TemplateType::class, + ]) + ->tag('sylius.live_component.admin', ['key' => 'sylius_cms:admin:template:form']); + + $services->set('sylius_cms.twig.component.collection.form', ResourceFormComponent::class) + ->args([ + service('sylius_cms.repository.collection'), + service('form.factory'), + '%sylius_cms.model.collection.class%', + CollectionType::class, + ]) + ->tag('sylius.live_component.admin', ['key' => 'sylius_cms:admin:collection:form']); + + $services->set('sylius_cms.twig.component.block.form', FormComponent::class) + ->args([ + service('sylius_cms.repository.block'), + service('form.factory'), + '%sylius_cms.model.block.class%', + BlockType::class, + service('sylius_cms.repository.template'), + service('twig'), + service('sylius.provider.locale'), + '@SyliusCmsPlugin/admin/block/preview.html.twig', + service('sylius_cms.content_element_renderer_strategy'), + ]) + ->call('setLiveResponder', [service('ux.live_component.live_responder')]) + ->tag('sylius.live_component.admin', ['key' => 'sylius_cms:admin:block:form']); + + $services->set('sylius_cms.twig.component.media.form', ResourceFormComponent::class) + ->args([ + service('sylius_cms.repository.media'), + service('form.factory'), + '%sylius_cms.model.media.class%', + MediaType::class, + ]) + ->tag('sylius.live_component.admin', ['key' => 'sylius_cms:admin:media:form']); + + $services->set('sylius_cms.twig.component.media.preview', MediaPreviewComponent::class) + ->tag('sylius.twig_component', ['key' => 'sylius_cms:admin:media:preview']); + + $services->set('sylius_cms.twig.component.admin.page.form', PageFormComponent::class) + ->args([ + service('sylius_cms.repository.page'), + service('form.factory'), + '%sylius_cms.model.page.class%', + PageType::class, + service('sylius_cms.repository.template'), + service('twig'), + service('sylius.provider.locale'), + '@SyliusCmsPlugin/admin/page/preview.html.twig', + service('sylius.generator.slug'), + ]) + ->call('setLiveResponder', [service('ux.live_component.live_responder')]) + ->tag('sylius.live_component.admin', ['key' => 'sylius_cms:admin:page:form']); +}; diff --git a/config/services/twig/component.xml b/config/services/twig/component.xml deleted file mode 100644 index 3a9bda8e..00000000 --- a/config/services/twig/component.xml +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - %sylius_cms.model.template.class% - Sylius\CmsPlugin\Form\Type\TemplateType - - - - - - - - %sylius_cms.model.collection.class% - Sylius\CmsPlugin\Form\Type\CollectionType - - - - - - - - %sylius_cms.model.block.class% - Sylius\CmsPlugin\Form\Type\BlockType - - - - @SyliusCmsPlugin/admin/block/preview.html.twig - - - - - - - - - - - - - %sylius_cms.model.media.class% - Sylius\CmsPlugin\Form\Type\MediaType - - - - - - - - - - - - %sylius_cms.model.page.class% - Sylius\CmsPlugin\Form\Type\PageType - - - - @SyliusCmsPlugin/admin/page/preview.html.twig - - - - - - - - - - diff --git a/config/services/twig/extension.php b/config/services/twig/extension.php new file mode 100644 index 00000000..06fc0895 --- /dev/null +++ b/config/services/twig/extension.php @@ -0,0 +1,50 @@ +services(); + + $services->defaults() + ->private() + ->tag('twig.extension'); + + $services->set('sylius_cms.twig.extension.block', RenderBlockExtension::class) + ->args([service('sylius_cms.twig.runtime.block')]); + + $services->set('sylius_cms.twig.extension.collection', RenderCollectionExtension::class) + ->args([service('sylius_cms.twig.runtime.collection')]); + + $services->set('sylius_cms.twig.extension.media', RenderMediaExtension::class) + ->args([service('sylius_cms.twig.runtime.media')]); + + $services->set('sylius_cms.twig.extension.render_content', RenderContentExtension::class); + + $services->set('sylius_cms.twig.extension.render_content_elements', RenderContentElementsExtension::class); + + $services->set('sylius_cms.twig.extension.render_link', RenderPageLinkExtension::class); + + $services->set('sylius_cms.twig.extension.template_exists', TemplateExistsExtension::class) + ->args([service('sylius_cms.twig.runtime.template_exists')]); + + $services->set('sylius_cms.twig.extension.resolve_media_video_path', ResolveMediaVideoPathExtension::class) + ->args([service('sylius_cms.twig.runtime.resolve_media_video_path')]); +}; diff --git a/config/services/twig/extension.xml b/config/services/twig/extension.xml deleted file mode 100644 index ad3cec3a..00000000 --- a/config/services/twig/extension.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/twig/runtime.php b/config/services/twig/runtime.php new file mode 100644 index 00000000..ad876333 --- /dev/null +++ b/config/services/twig/runtime.php @@ -0,0 +1,79 @@ +services(); + $parameters = $container->parameters(); + $parameters->set('sylius_cms.twig.link_template', '@SyliusCmsPlugin/shop/page/link.html.twig'); + + $services->defaults() + ->private() + ->tag('twig.runtime'); + + $services->set('sylius_cms.twig.runtime.block', RenderBlockRuntime::class) + ->args([ + service('sylius_cms.resolver.block_resource'), + service('twig'), + service('sylius_cms.content_element_renderer_strategy'), + ]); + + $services->set('sylius_cms.twig.runtime.collection', RenderCollectionRuntime::class) + ->args([ + service('twig'), + service('sylius_cms.resolver.collection_resource'), + service('sylius_cms.collection_renderer_strategy'), + ]); + + $services->set('sylius_cms.twig.runtime.media', RenderMediaRuntime::class) + ->args([ + service('sylius_cms.resolver.media_provider'), + service('sylius_cms.resolver.media_resource'), + ]); + + $services->set('sylius_cms.twig.runtime.render_content', RenderContentRuntime::class) + ->args([service('sylius_cms.twig.parser.content')]); + + $services->set('sylius_cms.twig.runtime.render_content_elements', RenderContentElementsRuntime::class) + ->args([service('sylius_cms.content_element_renderer_strategy')]); + + $services->set('sylius_cms.twig.runtime.render_link', RenderPageLinkRuntime::class) + ->args([ + service('sylius_cms.repository.page'), + service('router.default'), + '%sylius_cms.twig.link_template%', + ]); + + $services->set('sylius_cms.twig.runtime.template_exists', TemplateExistsRuntime::class) + ->lazy(TemplateExistsRuntimeInterface::class) + ->args([service('twig')]); + + $services->set('sylius_cms.twig.runtime.resolve_media_video_path', ResolveMediaVideoPathRuntime::class) + ->args([ + service('sylius_cms_media.video.storage'), + '%sylius_cms.videos_dir%', + '%sylius_core.public_dir%', + ]); + + $services->alias(ResolveMediaVideoPathRuntimeInterface::class, 'sylius_cms.twig.runtime.resolve_media_video_path'); +}; diff --git a/config/services/twig/runtime.xml b/config/services/twig/runtime.xml deleted file mode 100644 index 5a4062b1..00000000 --- a/config/services/twig/runtime.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - @SyliusCmsPlugin/shop/page/link.html.twig - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %sylius_cms.twig.link_template% - - - - - - - - - %sylius_cms.videos_dir% - %sylius_core.public_dir% - - - - diff --git a/src/DependencyInjection/SyliusCmsExtension.php b/src/DependencyInjection/SyliusCmsExtension.php index a4dad948..37f35fe0 100755 --- a/src/DependencyInjection/SyliusCmsExtension.php +++ b/src/DependencyInjection/SyliusCmsExtension.php @@ -16,8 +16,10 @@ use Sylius\Bundle\CoreBundle\DependencyInjection\PrependDoctrineMigrationsTrait; use Sylius\Bundle\ResourceBundle\DependencyInjection\Extension\AbstractResourceExtension; use Symfony\Component\Config\Definition\ConfigurationInterface; +use Symfony\Component\Config\FileLocator; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface; +use Symfony\Component\DependencyInjection\Loader\PhpFileLoader; final class SyliusCmsExtension extends AbstractResourceExtension implements PrependExtensionInterface { @@ -32,6 +34,10 @@ public function load(array $configs, ContainerBuilder $container): void $container->setParameter('sylius_cms.templates.blocks', $config['templates']['blocks']); $container->setParameter('sylius_cms.wysiwyg_editor', $config['wysiwyg_editor']); + + $loader = new PhpFileLoader($container, new FileLocator(__DIR__ . '/../../config')); + + $loader->load('services.php'); } public function prepend(ContainerBuilder $container): void From 032640d0b4d2f4838d8cef4280d294c1bd2319a3 Mon Sep 17 00:00:00 2001 From: Simon Krull Date: Fri, 24 Jul 2026 08:10:29 +0200 Subject: [PATCH 2/2] [Behat] [XML2PHP] convert Behat service definitions from XML to PHP --- tests/Behat/Resources/services.php | 29 +++++ tests/Behat/Resources/services.xml | 16 --- tests/Behat/Resources/services/api.php | 39 ++++++ tests/Behat/Resources/services/api.xml | 23 ---- tests/Behat/Resources/services/contexts.php | 21 ++++ tests/Behat/Resources/services/contexts.xml | 10 -- .../Behat/Resources/services/contexts/api.php | 51 ++++++++ .../Behat/Resources/services/contexts/api.xml | 27 ----- .../Resources/services/contexts/setup.php | 71 +++++++++++ .../Resources/services/contexts/setup.xml | 46 ------- .../Resources/services/contexts/transform.php | 50 ++++++++ .../Resources/services/contexts/transform.xml | 27 ----- .../Behat/Resources/services/contexts/ui.php | 112 ++++++++++++++++++ .../Behat/Resources/services/contexts/ui.xml | 89 -------------- tests/Behat/Resources/services/elements.php | 39 ++++++ tests/Behat/Resources/services/elements.xml | 19 --- tests/Behat/Resources/services/pages.php | 31 +++++ tests/Behat/Resources/services/pages.xml | 17 --- .../Behat/Resources/services/pages/admin.php | 22 ++++ .../Behat/Resources/services/pages/admin.xml | 11 -- .../Resources/services/pages/admin/block.php | 47 ++++++++ .../Resources/services/pages/admin/block.xml | 21 ---- .../services/pages/admin/collection.php | 40 +++++++ .../services/pages/admin/collection.xml | 19 --- .../Resources/services/pages/admin/media.php | 40 +++++++ .../Resources/services/pages/admin/media.xml | 19 --- .../Resources/services/pages/admin/page.php | 47 ++++++++ .../Resources/services/pages/admin/page.xml | 21 ---- .../services/pages/admin/template.php | 40 +++++++ .../services/pages/admin/template.xml | 19 --- tests/Behat/Resources/services/pages/shop.php | 38 ++++++ tests/Behat/Resources/services/pages/shop.xml | 16 --- .../TestApplication/config/services_test.php | 2 +- 33 files changed, 718 insertions(+), 401 deletions(-) create mode 100644 tests/Behat/Resources/services.php delete mode 100644 tests/Behat/Resources/services.xml create mode 100644 tests/Behat/Resources/services/api.php delete mode 100644 tests/Behat/Resources/services/api.xml create mode 100644 tests/Behat/Resources/services/contexts.php delete mode 100644 tests/Behat/Resources/services/contexts.xml create mode 100644 tests/Behat/Resources/services/contexts/api.php delete mode 100644 tests/Behat/Resources/services/contexts/api.xml create mode 100644 tests/Behat/Resources/services/contexts/setup.php delete mode 100644 tests/Behat/Resources/services/contexts/setup.xml create mode 100644 tests/Behat/Resources/services/contexts/transform.php delete mode 100644 tests/Behat/Resources/services/contexts/transform.xml create mode 100644 tests/Behat/Resources/services/contexts/ui.php delete mode 100644 tests/Behat/Resources/services/contexts/ui.xml create mode 100644 tests/Behat/Resources/services/elements.php delete mode 100644 tests/Behat/Resources/services/elements.xml create mode 100644 tests/Behat/Resources/services/pages.php delete mode 100644 tests/Behat/Resources/services/pages.xml create mode 100644 tests/Behat/Resources/services/pages/admin.php delete mode 100644 tests/Behat/Resources/services/pages/admin.xml create mode 100644 tests/Behat/Resources/services/pages/admin/block.php delete mode 100644 tests/Behat/Resources/services/pages/admin/block.xml create mode 100644 tests/Behat/Resources/services/pages/admin/collection.php delete mode 100644 tests/Behat/Resources/services/pages/admin/collection.xml create mode 100644 tests/Behat/Resources/services/pages/admin/media.php delete mode 100644 tests/Behat/Resources/services/pages/admin/media.xml create mode 100644 tests/Behat/Resources/services/pages/admin/page.php delete mode 100644 tests/Behat/Resources/services/pages/admin/page.xml create mode 100644 tests/Behat/Resources/services/pages/admin/template.php delete mode 100644 tests/Behat/Resources/services/pages/admin/template.xml create mode 100644 tests/Behat/Resources/services/pages/shop.php delete mode 100644 tests/Behat/Resources/services/pages/shop.xml diff --git a/tests/Behat/Resources/services.php b/tests/Behat/Resources/services.php new file mode 100644 index 00000000..b4807262 --- /dev/null +++ b/tests/Behat/Resources/services.php @@ -0,0 +1,29 @@ +services(); + $container->import('services/api.php'); + $container->import('services/contexts.php'); + $container->import('services/elements.php'); + $container->import('services/pages.php'); + + $services->defaults() + ->public(); + + $services->set('sylius_cms.behat.random_string_generator', RandomStringGenerator::class); +}; diff --git a/tests/Behat/Resources/services.xml b/tests/Behat/Resources/services.xml deleted file mode 100644 index cf20700d..00000000 --- a/tests/Behat/Resources/services.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/tests/Behat/Resources/services/api.php b/tests/Behat/Resources/services/api.php new file mode 100644 index 00000000..4eaa09e6 --- /dev/null +++ b/tests/Behat/Resources/services/api.php @@ -0,0 +1,39 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_cms.behat.api_platform_client.shop.block', ApiPlatformClient::class) + ->parent('sylius.behat.api_platform_client') + ->args(['shop/cms-plugin']); + + $services->set('sylius_cms.behat.api_platform_client.shop.media', ApiPlatformClient::class) + ->parent('sylius.behat.api_platform_client') + ->args(['shop/cms-plugin']); + + $services->set('sylius_cms.behat.api_platform_client.shop.page', ApiPlatformClient::class) + ->parent('sylius.behat.api_platform_client') + ->args(['shop/cms-plugin']); + + $services->set('sylius_cms.behat.api_platform_client.shop.collection', ApiPlatformClient::class) + ->parent('sylius.behat.api_platform_client') + ->args(['shop/cms-plugin']); +}; diff --git a/tests/Behat/Resources/services/api.xml b/tests/Behat/Resources/services/api.xml deleted file mode 100644 index f604eb6d..00000000 --- a/tests/Behat/Resources/services/api.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - shop/cms-plugin - - - - shop/cms-plugin - - - - shop/cms-plugin - - - - shop/cms-plugin - - - diff --git a/tests/Behat/Resources/services/contexts.php b/tests/Behat/Resources/services/contexts.php new file mode 100644 index 00000000..50f93234 --- /dev/null +++ b/tests/Behat/Resources/services/contexts.php @@ -0,0 +1,21 @@ +import('contexts/setup.php'); + $container->import('contexts/ui.php'); + $container->import('contexts/api.php'); + $container->import('contexts/transform.php'); +}; diff --git a/tests/Behat/Resources/services/contexts.xml b/tests/Behat/Resources/services/contexts.xml deleted file mode 100644 index b1c0d318..00000000 --- a/tests/Behat/Resources/services/contexts.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/tests/Behat/Resources/services/contexts/api.php b/tests/Behat/Resources/services/contexts/api.php new file mode 100644 index 00000000..a2f0e779 --- /dev/null +++ b/tests/Behat/Resources/services/contexts/api.php @@ -0,0 +1,51 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_cms.behat.context.api.block', BlockContext::class) + ->args([ + service('sylius_cms.behat.api_platform_client.shop.block'), + service(ResponseCheckerInterface::class), + ]); + + $services->set('sylius_cms.behat.context.api.media', MediaContext::class) + ->args([ + service('sylius_cms.behat.api_platform_client.shop.media'), + service(ResponseCheckerInterface::class), + ]); + + $services->set('sylius_cms.behat.context.api.page', PageContext::class) + ->args([ + service('sylius_cms.behat.api_platform_client.shop.page'), + service(ResponseCheckerInterface::class), + ]); + + $services->set('sylius_cms.behat.context.api.collection', CollectionContext::class) + ->args([ + service('sylius_cms.behat.api_platform_client.shop.collection'), + service(ResponseCheckerInterface::class), + ]); +}; diff --git a/tests/Behat/Resources/services/contexts/api.xml b/tests/Behat/Resources/services/contexts/api.xml deleted file mode 100644 index d367d68b..00000000 --- a/tests/Behat/Resources/services/contexts/api.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/Behat/Resources/services/contexts/setup.php b/tests/Behat/Resources/services/contexts/setup.php new file mode 100644 index 00000000..975d5fdd --- /dev/null +++ b/tests/Behat/Resources/services/contexts/setup.php @@ -0,0 +1,71 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_cms.behat.context.setup.block', BlockContext::class) + ->args([ + service('sylius.behat.shared_storage'), + service('sylius_cms.behat.random_string_generator'), + service('sylius_cms.factory.block'), + service('sylius_cms.repository.block'), + ]); + + $services->set('sylius_cms.behat.context.setup.page', PageContext::class) + ->args([ + service('sylius.behat.shared_storage'), + service('sylius_cms.behat.random_string_generator'), + service('sylius_cms.factory.page'), + service('sylius_cms.repository.page'), + service('doctrine.orm.entity_manager'), + service('sylius.repository.product'), + service('sylius_cms.repository.collection'), + service('sylius_cms.media_provider.image'), + ]); + + $services->set('sylius_cms.behat.context.setup.collection', CollectionContext::class) + ->args([ + service('sylius.behat.shared_storage'), + service('sylius_cms.behat.random_string_generator'), + service('sylius_cms.factory.collection'), + service('sylius_cms.repository.collection'), + ]); + + $services->set('sylius_cms.behat.context.setup.media', MediaContext::class) + ->args([ + service('sylius.behat.shared_storage'), + service('sylius_cms.behat.random_string_generator'), + service('sylius_cms.factory.media'), + service('sylius_cms.repository.media'), + service('sylius_cms.resolver.media_provider'), + ]); + + $services->set('sylius_cms.behat.context.setup.content_template', ContentTemplateContext::class) + ->args([ + service('sylius_cms.factory.template'), + service('sylius.behat.shared_storage'), + service('sylius_cms.repository.template'), + ]); +}; diff --git a/tests/Behat/Resources/services/contexts/setup.xml b/tests/Behat/Resources/services/contexts/setup.xml deleted file mode 100644 index b965e08e..00000000 --- a/tests/Behat/Resources/services/contexts/setup.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/Behat/Resources/services/contexts/transform.php b/tests/Behat/Resources/services/contexts/transform.php new file mode 100644 index 00000000..ca7ae366 --- /dev/null +++ b/tests/Behat/Resources/services/contexts/transform.php @@ -0,0 +1,50 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_cms.behat.context.transform.block', BlockContext::class) + ->args([ + service('sylius_cms.repository.block'), + '%locale%', + ]); + + $services->set('sylius_cms.behat.context.transform.media', MediaContext::class) + ->args([ + service('sylius_cms.repository.media'), + service('sylius.behat.shared_storage'), + ]); + + $services->set('sylius_cms.behat.context.transform.page', PageContext::class) + ->args([ + service('sylius_cms.repository.page'), + '%locale%', + ]); + + $services->set('sylius_cms.behat.context.transform.collection', CollectionContext::class) + ->args([ + service('sylius_cms.repository.collection'), + '%locale%', + ]); +}; diff --git a/tests/Behat/Resources/services/contexts/transform.xml b/tests/Behat/Resources/services/contexts/transform.xml deleted file mode 100644 index 50cb5c9b..00000000 --- a/tests/Behat/Resources/services/contexts/transform.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - %locale% - - - - - - - - - - %locale% - - - - - %locale% - - - diff --git a/tests/Behat/Resources/services/contexts/ui.php b/tests/Behat/Resources/services/contexts/ui.php new file mode 100644 index 00000000..87479b33 --- /dev/null +++ b/tests/Behat/Resources/services/contexts/ui.php @@ -0,0 +1,112 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_cms.behat.context.ui.admin.block', BlockContext::class) + ->args([ + service('sylius.behat.shared_storage'), + service('sylius.behat.current_page_resolver'), + service('sylius.behat.notification_checker.admin'), + service('sylius_cms.behat.page.admin.block.index'), + service('sylius_cms.behat.page.admin.block.create'), + service('sylius_cms.behat.page.admin.block.update'), + service('sylius_cms.behat.random_string_generator'), + service('sylius_cms.repository.block'), + ]); + + $services->set('sylius_cms.behat.context.ui.admin.page', PageContext::class) + ->args([ + service('sylius.behat.shared_storage'), + service('sylius.behat.current_page_resolver'), + service('sylius.behat.notification_checker.admin'), + service('sylius_cms.behat.page.admin.page.index'), + service('sylius_cms.behat.page.admin.page.create'), + service('sylius_cms.behat.page.admin.page.update'), + service('sylius_cms.behat.random_string_generator'), + service('sylius_cms.repository.page'), + ]); + + $services->set('sylius_cms.behat.context.ui.admin.content_collection', ContentCollectionContext::class) + ->args([service('sylius_cms.behat.element.admin.content_elements_collection')]); + + $services->set('sylius_cms.behat.context.ui.admin.collection', CollectionContext::class) + ->args([ + service('sylius.behat.shared_storage'), + service('sylius.behat.current_page_resolver'), + service('sylius.behat.notification_checker.admin'), + service('sylius_cms.behat.page.admin.collection.index'), + service('sylius_cms.behat.page.admin.collection.create'), + service('sylius_cms.behat.page.admin.collection.update'), + service('sylius_cms.behat.random_string_generator'), + ]); + + $services->set('sylius_cms.behat.context.ui.shop.homepage_blocks', HomepageBlocksContext::class) + ->args([service('sylius_cms.behat.page.shop.home')]); + + $services->set('sylius_cms.behat.context.ui.shop.page', \Tests\Sylius\CmsPlugin\Behat\Context\Ui\Shop\PageContext::class) + ->args([ + service('sylius_cms.behat.page.shop.page.show'), + service('sylius_cms.behat.page.shop.page.index'), + service('sylius.behat.shared_storage'), + ]); + + $services->set('sylius_cms.behat.context.ui.admin.media', MediaContext::class) + ->args([ + service('sylius.behat.current_page_resolver'), + service('sylius.behat.notification_checker.admin'), + service('sylius_cms.behat.page.admin.media.index'), + service('sylius_cms.behat.page.admin.media.create'), + service('sylius_cms.behat.page.admin.media.update'), + service('sylius_cms.behat.random_string_generator'), + ]); + + $services->set('sylius_cms.behat.context.ui.shop.media', \Tests\Sylius\CmsPlugin\Behat\Context\Ui\Shop\MediaContext::class) + ->args([ + service('sylius_cms.repository.media'), + service('sylius_cms.behat.page.shop.home'), + ]); + + $services->set('sylius_cms.behat.context.ui.admin.content_template', ContentTemplateContext::class) + ->args([ + service('sylius.behat.shared_storage'), + service('sylius.behat.current_page_resolver'), + service('sylius.behat.notification_checker.admin'), + service('sylius_cms.behat.page.admin.template.index'), + service('sylius_cms.behat.page.admin.template.create'), + service('sylius_cms.behat.page.admin.template.update'), + service('sylius_cms.repository.template'), + service('sylius_cms.behat.random_string_generator'), + ]); + + $services->set('sylius_cms.behat.context.ui.admin.trix_wysiwyg', TrixWysiwygContext::class); + + $services->set('sylius_cms.behat.context.ui.admin.quill_wysiwyg', QuillWysiwygContext::class) + ->args([service('sylius_cms.behat.element.admin.quill_editor')]); +}; diff --git a/tests/Behat/Resources/services/contexts/ui.xml b/tests/Behat/Resources/services/contexts/ui.xml deleted file mode 100644 index 28f05240..00000000 --- a/tests/Behat/Resources/services/contexts/ui.xml +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/Behat/Resources/services/elements.php b/tests/Behat/Resources/services/elements.php new file mode 100644 index 00000000..b42992ba --- /dev/null +++ b/tests/Behat/Resources/services/elements.php @@ -0,0 +1,39 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_cms.behat.element.admin.content_elements_collection', ContentElementsCollectionElement::class) + ->args([ + service('behat.mink.default_session'), + service('behat.mink.parameters'), + service(AutocompleteHelperInterface::class), + '%locale%', + ]); + + $services->set('sylius_cms.behat.element.admin.quill_editor', QuillEditorElement::class) + ->args([ + service('behat.mink.default_session'), + service('behat.mink.parameters'), + ]); +}; diff --git a/tests/Behat/Resources/services/elements.xml b/tests/Behat/Resources/services/elements.xml deleted file mode 100644 index ebd6ec3e..00000000 --- a/tests/Behat/Resources/services/elements.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - %locale% - - - - - - - - diff --git a/tests/Behat/Resources/services/pages.php b/tests/Behat/Resources/services/pages.php new file mode 100644 index 00000000..aadfbe6b --- /dev/null +++ b/tests/Behat/Resources/services/pages.php @@ -0,0 +1,31 @@ +services(); + $container->import('pages/admin.php'); + $container->import('pages/shop.php'); + + $services->defaults() + ->public(); + + $services->set('sylius_cms.behat.page', Page::class) + ->args([ + service('behat.mink.default_session'), + service('behat.mink.parameters'), + ]); +}; diff --git a/tests/Behat/Resources/services/pages.xml b/tests/Behat/Resources/services/pages.xml deleted file mode 100644 index 21e5df9a..00000000 --- a/tests/Behat/Resources/services/pages.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/tests/Behat/Resources/services/pages/admin.php b/tests/Behat/Resources/services/pages/admin.php new file mode 100644 index 00000000..b7c1a334 --- /dev/null +++ b/tests/Behat/Resources/services/pages/admin.php @@ -0,0 +1,22 @@ +import('admin/block.php'); + $container->import('admin/page.php'); + $container->import('admin/collection.php'); + $container->import('admin/media.php'); + $container->import('admin/template.php'); +}; diff --git a/tests/Behat/Resources/services/pages/admin.xml b/tests/Behat/Resources/services/pages/admin.xml deleted file mode 100644 index 09858426..00000000 --- a/tests/Behat/Resources/services/pages/admin.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/tests/Behat/Resources/services/pages/admin/block.php b/tests/Behat/Resources/services/pages/admin/block.php new file mode 100644 index 00000000..b2df7150 --- /dev/null +++ b/tests/Behat/Resources/services/pages/admin/block.php @@ -0,0 +1,47 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_cms.behat.page.admin.block.index', IndexPage::class) + ->private() + ->parent('sylius.behat.page.admin.crud.index') + ->args(['sylius_cms_admin_block_index']); + + $services->set('sylius_cms.behat.page.admin.block.create', CreatePage::class) + ->private() + ->parent('sylius.behat.page.admin.crud.create') + ->args([ + 'sylius_cms_admin_block_create', + service(AutocompleteHelperInterface::class), + ]); + + $services->set('sylius_cms.behat.page.admin.block.update', UpdatePage::class) + ->private() + ->parent('sylius.behat.page.admin.crud.update') + ->args([ + 'sylius_cms_admin_block_update', + service(AutocompleteHelperInterface::class), + ]); +}; diff --git a/tests/Behat/Resources/services/pages/admin/block.xml b/tests/Behat/Resources/services/pages/admin/block.xml deleted file mode 100644 index 1a10358c..00000000 --- a/tests/Behat/Resources/services/pages/admin/block.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - sylius_cms_admin_block_index - - - - sylius_cms_admin_block_create - - - - - sylius_cms_admin_block_update - - - - diff --git a/tests/Behat/Resources/services/pages/admin/collection.php b/tests/Behat/Resources/services/pages/admin/collection.php new file mode 100644 index 00000000..b1a9361d --- /dev/null +++ b/tests/Behat/Resources/services/pages/admin/collection.php @@ -0,0 +1,40 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_cms.behat.page.admin.collection.index', IndexPage::class) + ->private() + ->parent('sylius.behat.page.admin.crud.index') + ->args(['sylius_cms_admin_collection_index']); + + $services->set('sylius_cms.behat.page.admin.collection.create', CreatePage::class) + ->private() + ->parent('sylius.behat.page.admin.crud.create') + ->args(['sylius_cms_admin_collection_create']); + + $services->set('sylius_cms.behat.page.admin.collection.update', UpdatePage::class) + ->private() + ->parent('sylius.behat.page.admin.crud.update') + ->args(['sylius_cms_admin_collection_update']); +}; diff --git a/tests/Behat/Resources/services/pages/admin/collection.xml b/tests/Behat/Resources/services/pages/admin/collection.xml deleted file mode 100644 index 22fb0b88..00000000 --- a/tests/Behat/Resources/services/pages/admin/collection.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - sylius_cms_admin_collection_index - - - - sylius_cms_admin_collection_create - - - - sylius_cms_admin_collection_update - - - diff --git a/tests/Behat/Resources/services/pages/admin/media.php b/tests/Behat/Resources/services/pages/admin/media.php new file mode 100644 index 00000000..707896e2 --- /dev/null +++ b/tests/Behat/Resources/services/pages/admin/media.php @@ -0,0 +1,40 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_cms.behat.page.admin.media.index', IndexPage::class) + ->private() + ->parent('sylius.behat.page.admin.crud.index') + ->args(['sylius_cms_admin_media_index']); + + $services->set('sylius_cms.behat.page.admin.media.create', CreatePage::class) + ->private() + ->parent('sylius.behat.page.admin.crud.create') + ->args(['sylius_cms_admin_media_create']); + + $services->set('sylius_cms.behat.page.admin.media.update', UpdatePage::class) + ->private() + ->parent('sylius.behat.page.admin.crud.update') + ->args(['sylius_cms_admin_media_update']); +}; diff --git a/tests/Behat/Resources/services/pages/admin/media.xml b/tests/Behat/Resources/services/pages/admin/media.xml deleted file mode 100644 index c9f557d2..00000000 --- a/tests/Behat/Resources/services/pages/admin/media.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - sylius_cms_admin_media_index - - - - sylius_cms_admin_media_create - - - - sylius_cms_admin_media_update - - - diff --git a/tests/Behat/Resources/services/pages/admin/page.php b/tests/Behat/Resources/services/pages/admin/page.php new file mode 100644 index 00000000..0107eb04 --- /dev/null +++ b/tests/Behat/Resources/services/pages/admin/page.php @@ -0,0 +1,47 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_cms.behat.page.admin.page.index', IndexPage::class) + ->private() + ->parent('sylius.behat.page.admin.crud.index') + ->args(['sylius_cms_admin_page_index']); + + $services->set('sylius_cms.behat.page.admin.page.create', CreatePage::class) + ->private() + ->parent('sylius.behat.page.admin.crud.create') + ->args([ + 'sylius_cms_admin_page_create', + service(AutocompleteHelperInterface::class), + ]); + + $services->set('sylius_cms.behat.page.admin.page.update', UpdatePage::class) + ->private() + ->parent('sylius.behat.page.admin.crud.update') + ->args([ + 'sylius_cms_admin_page_update', + service(AutocompleteHelperInterface::class), + ]); +}; diff --git a/tests/Behat/Resources/services/pages/admin/page.xml b/tests/Behat/Resources/services/pages/admin/page.xml deleted file mode 100644 index 8f873604..00000000 --- a/tests/Behat/Resources/services/pages/admin/page.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - sylius_cms_admin_page_index - - - - sylius_cms_admin_page_create - - - - - sylius_cms_admin_page_update - - - - diff --git a/tests/Behat/Resources/services/pages/admin/template.php b/tests/Behat/Resources/services/pages/admin/template.php new file mode 100644 index 00000000..a90372c5 --- /dev/null +++ b/tests/Behat/Resources/services/pages/admin/template.php @@ -0,0 +1,40 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_cms.behat.page.admin.template.index', IndexPage::class) + ->private() + ->parent('sylius.behat.page.admin.crud.index') + ->args(['sylius_cms_admin_template_index']); + + $services->set('sylius_cms.behat.page.admin.template.create', CreatePage::class) + ->private() + ->parent('sylius.behat.page.admin.crud.create') + ->args(['sylius_cms_admin_template_create']); + + $services->set('sylius_cms.behat.page.admin.template.update', UpdatePage::class) + ->private() + ->parent('sylius.behat.page.admin.crud.update') + ->args(['sylius_cms_admin_template_update']); +}; diff --git a/tests/Behat/Resources/services/pages/admin/template.xml b/tests/Behat/Resources/services/pages/admin/template.xml deleted file mode 100644 index e527e920..00000000 --- a/tests/Behat/Resources/services/pages/admin/template.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - sylius_cms_admin_template_index - - - - sylius_cms_admin_template_create - - - - sylius_cms_admin_template_update - - - diff --git a/tests/Behat/Resources/services/pages/shop.php b/tests/Behat/Resources/services/pages/shop.php new file mode 100644 index 00000000..f28e6cc5 --- /dev/null +++ b/tests/Behat/Resources/services/pages/shop.php @@ -0,0 +1,38 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_cms.behat.page.shop.home', HomePage::class) + ->private() + ->parent('sylius.behat.page.shop.home') + ->args(['sylius_shop_homepage']); + + $services->set('sylius_cms.behat.page.shop.page.show', ShowPage::class) + ->private() + ->parent('sylius.behat.symfony_page'); + + $services->set('sylius_cms.behat.page.shop.page.index', IndexPage::class) + ->private() + ->parent('sylius.behat.symfony_page'); +}; diff --git a/tests/Behat/Resources/services/pages/shop.xml b/tests/Behat/Resources/services/pages/shop.xml deleted file mode 100644 index 2f8bb125..00000000 --- a/tests/Behat/Resources/services/pages/shop.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - sylius_shop_homepage - - - - - - - - diff --git a/tests/TestApplication/config/services_test.php b/tests/TestApplication/config/services_test.php index 48c9bcca..b3983368 100644 --- a/tests/TestApplication/config/services_test.php +++ b/tests/TestApplication/config/services_test.php @@ -18,6 +18,6 @@ if (str_starts_with($env, 'test')) { $container->import('../../../vendor/sylius/sylius/src/Sylius/Behat/Resources/config/services.xml'); - $container->import('@SyliusCmsPlugin/tests/Behat/Resources/services.xml'); + $container->import('@SyliusCmsPlugin/tests/Behat/Resources/services.php'); } };