diff --git a/.github/workflows/analysis.yaml b/.github/workflows/analysis.yaml index be82375..7bdac1c 100644 --- a/.github/workflows/analysis.yaml +++ b/.github/workflows/analysis.yaml @@ -20,6 +20,7 @@ jobs: - 8.3 symfony: - '6.4.*' + - '7.2.*' env: APP_ENV: test steps: diff --git a/.github/workflows/sylius.yaml b/.github/workflows/sylius.yaml index a3e9ed9..4ba909e 100644 --- a/.github/workflows/sylius.yaml +++ b/.github/workflows/sylius.yaml @@ -19,13 +19,12 @@ jobs: - 8.2 - 8.3 sylius: - - 1.12.0 - - 1.13.0 - - 1.14.0 + - 2.0.0 symfony: - 6.4 + - 7.2 node: - - 14.x + - 20.x env: APP_ENV: test package-name: synolia/sylius-mail-tester-plugin diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 30982a4..30b6106 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,9 +6,9 @@ From the plugin root directory, run the following commands: $ make install -e SYLIUS_VERSION=XX SYMFONY_VERSION=YY PHP_VERSION=ZZ ``` -Default values : XX=1.12.0 and YY=6.1 and ZZ=8.1 +Default values : XX=2.0 and YY=7.1 and ZZ=8.3 -To be able to setup the plugin database, remember to configure you database credentials +To be able to set up the plugin database, remember to configure you database credentials in `install/Application/.env.local` and `install/Application/.env.test.local`. To reset test environment: @@ -22,7 +22,7 @@ $ make reset - GrumPHP (see configuration [grumphp.yml](grumphp.yml).) - GrumPHP is executed by the Git pre-commit hook, but you can launch it manualy with : + GrumPHP is executed by the Git pre-commit hook, but you can launch it manually with : ```bash $ make grumphp diff --git a/Makefile b/Makefile index f6d1191..3ad5233 100644 --- a/Makefile +++ b/Makefile @@ -7,9 +7,9 @@ CONSOLE=cd ${TEST_DIRECTORY} && php bin/console -e test COMPOSER=cd ${TEST_DIRECTORY} && composer YARN=cd ${TEST_DIRECTORY} && yarn -SYLIUS_VERSION=1.14.0 -SYMFONY_VERSION=6.4 -PHP_VERSION=8.2 +SYLIUS_VERSION=2.0 +SYMFONY_VERSION=7.1 +PHP_VERSION=8.3 PLUGIN_NAME=synolia/sylius-mail-tester-plugin ### @@ -87,7 +87,7 @@ grumphp: ## Run GrumPHP vendor/bin/grumphp run help: SHELL=/bin/bash -help: ## Dislay this help +help: ## Display this help @IFS=$$'\n'; for line in `grep -h -E '^[a-zA-Z_#-]+:?.*?##.*$$' $(MAKEFILE_LIST)`; do if [ "$${line:0:2}" = "##" ]; then \ echo $$line | awk 'BEGIN {FS = "## "}; {printf "\033[33m %s\033[0m\n", $$2}'; else \ echo $$line | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m%s\n", $$1, $$2}'; fi; \ diff --git a/README.md b/README.md index 5ab0997..ec9e350 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ | | Version | |:-------|:--------| | PHP | ^8.2 | -| Sylius | ^1.12 | +| Sylius | ~2.0 | ## Installation @@ -51,7 +51,7 @@ ```yaml synolia_mail_tester: - resource: "@SynoliaSyliusMailTesterPlugin/Resources/config/admin_routing.yaml" + resource: "@SynoliaSyliusMailTesterPlugin/config/routes/admin_routing.yaml" prefix: '/%sylius_admin.path_name%' ``` diff --git a/composer.json b/composer.json index 56c8bb7..8a6d585 100644 --- a/composer.json +++ b/composer.json @@ -12,46 +12,45 @@ "require": { "php": "^8.2", "fakerphp/faker": "^1.10", - "sylius/sylius": "^1.12", - "symfony/framework-bundle": "^6.4", + "sylius/sylius": "^2.0", "symfony/service-contracts": "^3.5", "webmozart/assert": "^1.11" }, "require-dev": { - "behat/behat": "^3.12", - "behat/mink-selenium2-driver": "^1.6", - "dmore/behat-chrome-extension": "^1.4", - "dmore/chrome-mink-driver": "^2.9", - "friends-of-behat/mink": "^1.10", - "friends-of-behat/mink-browserkit-driver": "^1.6", - "friends-of-behat/mink-debug-extension": "^2.1", - "friends-of-behat/mink-extension": "^2.7", - "friends-of-behat/page-object-extension": "^0.3", - "friends-of-behat/symfony-extension": "^2.4", - "friends-of-behat/variadic-extension": "^1.5", + "behat/behat": "3.19.0", + "behat/mink-selenium2-driver": "1.7.0", + "dmore/behat-chrome-extension": "1.4.0", + "dmore/chrome-mink-driver": "2.9.3", + "friends-of-behat/mink": "1.11.0", + "friends-of-behat/mink-browserkit-driver": "1.6.2", + "friends-of-behat/mink-debug-extension": "2.1.0", + "friends-of-behat/mink-extension": "2.7.5", + "friends-of-behat/page-object-extension": "0.3.2", + "friends-of-behat/symfony-extension": "2.6.0", + "friends-of-behat/variadic-extension": "1.6.0", "friendsoftwig/twigcs": "6.4.0", - "j13k/yaml-lint": "^1.1", - "php-parallel-lint/php-parallel-lint": "^1.4", - "phpmd/phpmd": "^2.15.0", - "phpro/grumphp": "^2.9", - "phpspec/phpspec": "^7.3", - "phpstan/extension-installer": "^1.3", - "phpstan/phpstan": "^2.0", - "phpstan/phpstan-doctrine": "^2.0", - "phpstan/phpstan-phpunit": "^2.0", - "phpstan/phpstan-strict-rules": "^2.0", - "phpstan/phpstan-webmozart-assert": "^2.0", - "phpunit/phpunit": "^9.5", - "povils/phpmnd": "^3.0", - "rector/rector": "^2.0", - "seld/jsonlint": "^1.11", - "squizlabs/php_codesniffer": "^3.11", - "sylius-labs/coding-standard": "^4.3", - "symfony/browser-kit": "^6.4", - "symfony/debug-bundle": "^6.4", - "symfony/dotenv": "^6.4", - "symfony/lock": "^6.4", - "symfony/web-profiler-bundle": "^6.4" + "j13k/yaml-lint": "1.1.6", + "php-parallel-lint/php-parallel-lint": "1.4.0", + "phpmd/phpmd": "2.15.0", + "phpro/grumphp": "2.11.0", + "phpspec/phpspec": "7.5.0", + "phpstan/extension-installer": "1.4.3", + "phpstan/phpstan": "2.1.8", + "phpstan/phpstan-doctrine": "2.0.2", + "phpstan/phpstan-phpunit": "2.0.4", + "phpstan/phpstan-strict-rules": "2.0.3", + "phpstan/phpstan-webmozart-assert": "2.0.0", + "phpunit/phpunit": "9.6.22", + "povils/phpmnd": "3.5.0", + "rector/rector": "2.0.10", + "seld/jsonlint": "1.11.0", + "squizlabs/php_codesniffer": "3.11.3", + "sylius-labs/coding-standard": "4.4.0", + "symfony/browser-kit": "7.2.4", + "symfony/debug-bundle": "^7.2.0", + "symfony/dotenv": "7.2.0", + "symfony/lock": "7.2.4", + "symfony/web-profiler-bundle": "7.2.4" }, "prefer-stable": true, "autoload": { @@ -64,9 +63,10 @@ "sort-packages": true, "allow-plugins": { "dealerdirect/phpcodesniffer-composer-installer": true, - "symfony/thanks": true, + "php-http/discovery": true, "phpro/grumphp": true, - "phpstan/extension-installer": true + "phpstan/extension-installer": true, + "symfony/thanks": true } }, "scripts": { diff --git a/config/config.yaml b/config/config.yaml new file mode 100644 index 0000000..ebd6604 --- /dev/null +++ b/config/config.yaml @@ -0,0 +1,2 @@ +imports: + - { resource: "@SynoliaSyliusMailTesterPlugin/config/twig_hooks/**/*.yaml" } \ No newline at end of file diff --git a/src/Resources/config/admin_routing.yaml b/config/routes/admin_routing.yaml similarity index 75% rename from src/Resources/config/admin_routing.yaml rename to config/routes/admin_routing.yaml index 48c1ea4..a3119aa 100644 --- a/src/Resources/config/admin_routing.yaml +++ b/config/routes/admin_routing.yaml @@ -1,5 +1,5 @@ controllers: resource: - path: ../../Controller/ + path: ../../src/Controller/ namespace: Synolia\SyliusMailTesterPlugin\Controller type: attribute diff --git a/src/Resources/config/services.yaml b/config/services.yaml similarity index 53% rename from src/Resources/config/services.yaml rename to config/services.yaml index ef57ccb..1a6c541 100644 --- a/src/Resources/config/services.yaml +++ b/config/services.yaml @@ -4,5 +4,5 @@ services: autoconfigure: true Synolia\SyliusMailTesterPlugin\: - resource: '../../*' - exclude: '../../{Fixture,SynoliaSyliusMailTesterPlugin.php}' + resource: '../src/*' + exclude: '../src/{Fixture,SynoliaSyliusMailTesterPlugin.php}' diff --git a/config/twig_hooks/admin/mailtester/update.yaml b/config/twig_hooks/admin/mailtester/update.yaml new file mode 100644 index 0000000..ffbd9e8 --- /dev/null +++ b/config/twig_hooks/admin/mailtester/update.yaml @@ -0,0 +1,38 @@ +sylius_twig_hooks: + hooks: + 'synolia.sylius_admin.mailtester': + sidebar: + template: '@SyliusAdmin/shared/crud/common/sidebar.html.twig' + priority: 200 + navbar: + template: '@SyliusAdmin/shared/crud/common/navbar.html.twig' + priority: 100 + content: + template: '@SyliusAdmin/shared/crud/common/content.html.twig' + priority: 0 + 'synolia.sylius_admin.mailtester.content': + flashes: + template: '@SyliusAdmin/shared/crud/common/content/flashes.html.twig' + priority: 400 + header: + template: '@SyliusAdmin/shared/crud/common/content/header.html.twig' + priority: 300 + form: + template: '@SynoliaSyliusMailTesterPlugin/admin/mailtester/content/form.html.twig' + priority: 200 + footer: + template: '@SyliusAdmin/shared/crud/common/content/footer.html.twig' + priority: 100 + 'synolia.sylius_admin.mailtester.content.header': + breadcrumbs: + template: '@SynoliaSyliusMailTesterPlugin/admin/mailtester/content/header/breadcrumbs.html.twig' + priority: 100 + title_block: + template: '@SyliusAdmin/shared/crud/common/content/header/title_block.html.twig' + priority: 0 + 'synolia.sylius_admin.mailtester.content.header.title_block': + title: + template: '@SyliusAdmin/shared/crud/common/content/header/title_block/title.html.twig' + configuration: + title: 'sylius.menu.admin.main.configuration.mail_tester' + priority: 100 \ No newline at end of file diff --git a/etc/capture-email.png b/etc/capture-email.png index 3c990cd..2f2c9d7 100644 Binary files a/etc/capture-email.png and b/etc/capture-email.png differ diff --git a/etc/capture.png b/etc/capture.png index f6b4f16..0675ab2 100644 Binary files a/etc/capture.png and b/etc/capture.png differ diff --git a/install/Application/config/packages/mailtester.yaml b/install/Application/config/packages/mailtester.yaml new file mode 100644 index 0000000..90562f5 --- /dev/null +++ b/install/Application/config/packages/mailtester.yaml @@ -0,0 +1,2 @@ +imports: + - { resource: "@SynoliaSyliusMailTesterPlugin/config/config.yaml" } \ No newline at end of file diff --git a/install/Application/config/routes/mailtester.yaml b/install/Application/config/routes/mailtester.yaml deleted file mode 100644 index 8c69b97..0000000 --- a/install/Application/config/routes/mailtester.yaml +++ /dev/null @@ -1,3 +0,0 @@ -synolia_mail_tester: - resource: "@SynoliaSyliusMailTesterPlugin/Resources/config/admin_routing.yaml" - prefix: '/%sylius_admin.path_name%' diff --git a/install/Application/config/routes/sylius_mail_tester.yaml b/install/Application/config/routes/sylius_mail_tester.yaml new file mode 100644 index 0000000..3bf1f06 --- /dev/null +++ b/install/Application/config/routes/sylius_mail_tester.yaml @@ -0,0 +1,3 @@ +synolia_mail_tester: + resource: "@SynoliaSyliusMailTesterPlugin/config/routes/admin_routing.yaml" + prefix: '/%sylius_admin.path_name%' diff --git a/ruleset/rector.php b/ruleset/rector.php index 076abf5..04b9781 100644 --- a/ruleset/rector.php +++ b/ruleset/rector.php @@ -22,11 +22,8 @@ ) ->withTypeCoverageLevel(0) ->withSets([ - SymfonySetList::SYMFONY_60, - SymfonySetList::SYMFONY_61, - SymfonySetList::SYMFONY_62, - SymfonySetList::SYMFONY_63, - SymfonySetList::SYMFONY_64, + SymfonySetList::SYMFONY_71, + SymfonySetList::SYMFONY_72, SetList::CODE_QUALITY, SetList::DEAD_CODE, ]); diff --git a/src/Controller/MailTesterController.php b/src/Controller/MailTesterController.php index de0ee9b..7eca716 100644 --- a/src/Controller/MailTesterController.php +++ b/src/Controller/MailTesterController.php @@ -59,14 +59,14 @@ public function mailTester(Request $request, SenderInterface $sender): Response 'recipient' => $mailTester['recipient'], ]); - return $this->render('@SynoliaSyliusMailTesterPlugin/Admin/MailTester/mail_tester.html.twig', ['form' => $form]); + return $this->render('@SynoliaSyliusMailTesterPlugin/admin/mailtester/layout.html.twig', ['form' => $form]); } if (isset($mailTester['submit']) && $form->isValid()) { $this->sendMail($request, $mailTester, $sender, $form); } - return $this->render('@SynoliaSyliusMailTesterPlugin/Admin/MailTester/mail_tester.html.twig', ['form' => $form]); + return $this->render('@SynoliaSyliusMailTesterPlugin/admin/mailtester/layout.html.twig', ['form' => $form]); } private function sendMail(Request $request, array $mailTester, SenderInterface $sender, FormInterface $form): void diff --git a/src/DependencyInjection/SynoliaSyliusMailTesterExtension.php b/src/DependencyInjection/SynoliaSyliusMailTesterExtension.php index 8920793..36f8bc6 100644 --- a/src/DependencyInjection/SynoliaSyliusMailTesterExtension.php +++ b/src/DependencyInjection/SynoliaSyliusMailTesterExtension.php @@ -18,7 +18,7 @@ final class SynoliaSyliusMailTesterExtension extends Extension */ public function load(array $configs, ContainerBuilder $container): void { - $loader = new YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); + $loader = new YamlFileLoader($container, new FileLocator(\dirname(__DIR__, 2) . '/config')); $loader->load('services.yaml'); diff --git a/src/Form/Type/MailTesterType.php b/src/Form/Type/MailTesterType.php index d803c61..6e8b263 100644 --- a/src/Form/Type/MailTesterType.php +++ b/src/Form/Type/MailTesterType.php @@ -37,7 +37,6 @@ public function buildForm(FormBuilderInterface $builder, array $options): void } $builder->add('change_form_subject', SubmitType::class, [ - 'attr' => ['class' => 'ui icon secondary button'], 'label' => 'sylius.ui.admin.mail_tester.change_form_subject', ]); @@ -53,14 +52,14 @@ public function buildForm(FormBuilderInterface $builder, array $options): void $builder->add( $code, $subject::class, - ['label_attr' => ['class' => 'ui massive label']], + ['label_attr' => ['class' => 'fs-2']], ); } } else { $builder->add( $subject->getCode(), $subject::class, - ['label_attr' => ['class' => 'ui massive label']], + ['label_attr' => ['class' => 'fs-2']], ); } } @@ -68,8 +67,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'submit', SubmitType::class, [ - 'attr' => ['class' => 'ui icon primary button'], - 'label' => 'sylius.ui.admin.mail_tester.submit', ], + 'label' => 'sylius.ui.admin.mail_tester.submit'], ); } @@ -83,8 +81,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'submit', SubmitType::class, [ - 'attr' => ['class' => 'ui icon primary button'], - 'label' => 'sylius.ui.admin.mail_tester.submit', ], + 'label' => 'sylius.ui.admin.mail_tester.submit'], ) ; } diff --git a/src/Form/Type/PasswordTokenResetType.php b/src/Form/Type/PasswordTokenResetType.php index a28ddaa..155fc29 100644 --- a/src/Form/Type/PasswordTokenResetType.php +++ b/src/Form/Type/PasswordTokenResetType.php @@ -20,7 +20,6 @@ final class PasswordTokenResetType extends AbstractMultipleKeysType protected static $syliusEmailKeys = [ Emails::PASSWORD_RESET, UserBundleEmails::RESET_PASSWORD_TOKEN, - UserBundleEmails::RESET_PASSWORD_PIN, ]; public function __construct( diff --git a/src/Resources/views/Admin/MailTester/mail_tester.html.twig b/src/Resources/views/Admin/MailTester/mail_tester.html.twig deleted file mode 100644 index 4e6ac0c..0000000 --- a/src/Resources/views/Admin/MailTester/mail_tester.html.twig +++ /dev/null @@ -1,28 +0,0 @@ -{% extends '@SyliusAdmin/layout.html.twig' %} - -{% import '@SyliusUi/Macro/headers.html.twig' as headers %} -{% import '@SyliusUi/Macro/buttons.html.twig' as buttons %} - -{% block title %}{{ 'sylius.menu.admin.main.configuration.mail_tester'|trans }} {{ parent() }}{% endblock %} - -{% form_theme form '@SyliusAdmin/Form/theme.html.twig' %} - -{% block content %} - {{ headers.default('sylius.menu.admin.main.configuration.mail_tester'|trans, 'mail') }} - - {{ form_start(form, {'attr': {'class': 'ui loadable form', 'novalidate': 'novalidate'}}) }} -