diff --git a/.travis.yml b/.travis.yml index 35e8344e..e416343d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,10 +16,9 @@ matrix: include: - php: 7.1 env: COMPOSER_FLAGS="--prefer-lowest" SYMFONY_DEPRECATIONS_HELPER=weak - - php: 7.1 - env: SYMFONY_REQUIRE="3.*" - php: 7.2 - php: 7.3 + - php: 7.4 env: DEPENDENCIES=dev before_install: diff --git a/CHANGELOG b/CHANGELOG index 1f967edc..98692596 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,7 @@ +# 3.5.0 + + * bumped Symfony deps to `^4.4|^5.0` + # 3.4.0 * bumped Symfony deps to `^4.3|^5.0` diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index 00128ecf..d1096651 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -101,6 +101,7 @@ private function getMailersNode() ->scalarNode('source_ip')->defaultNull()->end() ->scalarNode('local_domain')->defaultNull()->end() ->arrayNode('stream_options') + ->addDefaultsIfNotSet() ->ignoreExtraKeys(false) ->normalizeKeys(false) ->beforeNormalization() @@ -128,12 +129,6 @@ private function getMailersNode() return $recurse($v['stream-option']); }) ->end() - ->validate() - ->ifTrue(function ($v) { - return !method_exists('Swift_Transport_EsmtpTransport', 'setStreamOptions'); - }) - ->thenInvalid('stream_options is only available in Swiftmailer 5.4.2 or later.') - ->end() ->end() ->scalarNode('encryption') ->defaultNull() diff --git a/DependencyInjection/SwiftmailerExtension.php b/DependencyInjection/SwiftmailerExtension.php index 5da08898..1d295236 100644 --- a/DependencyInjection/SwiftmailerExtension.php +++ b/DependencyInjection/SwiftmailerExtension.php @@ -84,7 +84,7 @@ protected function configureMailer($name, array $mailer, ContainerBuilder $conta if (method_exists($container, 'resolveEnvPlaceholders')) { $options = []; - $envVariablesAllowed = ['transport', 'url', 'username', 'password', 'host', 'port', 'timeout', 'source_ip', 'local_domain', 'encryption', 'auth_mode', 'command','stream_options']; + $envVariablesAllowed = ['transport', 'url', 'username', 'password', 'host', 'port', 'timeout', 'source_ip', 'local_domain', 'encryption', 'auth_mode', 'command', 'stream_options']; foreach ($envVariablesAllowed as $key) { $container->resolveEnvPlaceholders($mailer[$key], null, $usedEnvs); $options[$key] = $mailer[$key]; @@ -146,7 +146,7 @@ protected function configureMailer($name, array $mailer, ContainerBuilder $conta protected function configureMailerTransport($name, array $mailer, ContainerBuilder $container, $transport, $isDefaultMailer = false) { - foreach (['encryption', 'port', 'host', 'username', 'password', 'auth_mode', 'timeout', 'source_ip', 'local_domain','stream_options'] as $key) { + foreach (['encryption', 'port', 'host', 'username', 'password', 'auth_mode', 'timeout', 'source_ip', 'local_domain', 'stream_options'] as $key) { $container->setParameter(sprintf('swiftmailer.mailer.%s.transport.smtp.%s', $name, $key), $mailer[$key]); } @@ -187,7 +187,7 @@ protected function configureMailerTransport($name, array $mailer, ContainerBuild ->setConfigurator([new Reference(sprintf('swiftmailer.transport.configurator.%s', $name)), 'configure']) ; - if (isset($mailer['stream_options'])) { + if ($mailer['stream_options']) { $container->setParameter(sprintf('swiftmailer.mailer.%s.transport.smtp.stream_options', $name), $mailer['stream_options']); $definitionDecorator->addMethodCall('setStreamOptions', [sprintf('%%swiftmailer.mailer.%s.transport.smtp.stream_options%%', $name)]); } @@ -232,9 +232,7 @@ protected function configureMailerTransport($name, array $mailer, ContainerBuild $container->setAlias(sprintf('swiftmailer.mailer.%s.transport', $name), sprintf('swiftmailer.mailer.transport.%s', $transport)); } - if (method_exists(Alias::class, 'setPrivate')) { - $container->getAlias(sprintf('swiftmailer.mailer.%s.transport', $name))->setPrivate(false); - } + $container->getAlias(sprintf('swiftmailer.mailer.%s.transport', $name))->setPublic(true); $definitionDecorator = $this->createChildDefinition('swiftmailer.mailer.abstract'); $container diff --git a/Tests/DependencyInjection/SwiftmailerExtensionTest.php b/Tests/DependencyInjection/SwiftmailerExtensionTest.php index 93bcf6c2..9d04eaff 100644 --- a/Tests/DependencyInjection/SwiftmailerExtensionTest.php +++ b/Tests/DependencyInjection/SwiftmailerExtensionTest.php @@ -62,7 +62,7 @@ public function testDefaultConfig($type) $this->assertEquals('localhost', $container->getParameter('swiftmailer.mailer.default.transport.smtp.host')); $this->assertEquals(25, $container->getParameter('swiftmailer.mailer.default.transport.smtp.port')); - $this->assertFalse($container->hasParameter('swiftmailer.mailer.default.transport.smtp.stream_options')); + $this->assertEmpty($container->getParameter('swiftmailer.mailer.default.transport.smtp.stream_options')); $this->assertEquals('example.org', $container->get('swiftmailer.mailer.default.transport')->getLocalDomain()); } @@ -145,7 +145,7 @@ public function testFull($type) $this->assertEquals('1000', $container->getParameter('swiftmailer.mailer.default.transport.smtp.timeout')); $this->assertEquals('127.0.0.1', $container->getParameter('swiftmailer.mailer.default.transport.smtp.source_ip')); $this->assertEquals('local.example.com', $container->getParameter('swiftmailer.mailer.default.transport.smtp.local_domain')); - $this->assertSame(['swiftmailer.default.plugin' => [[]]], $container->getDefinition('swiftmailer.mailer.default.plugin.redirecting')->getTags()); + $this->assertArrayHasKey('swiftmailer.default.plugin', $container->getDefinition('swiftmailer.mailer.default.plugin.redirecting')->getTags()); $this->assertSame('single@host.com', $container->getParameter('swiftmailer.mailer.default.single_address')); $this->assertEquals(['/foo@.*/', '/.*@bar.com$/'], $container->getParameter('swiftmailer.mailer.default.delivery_whitelist')); } @@ -320,10 +320,6 @@ public function testSmtpConfig($type) */ public function testStreamOptions($type) { - if (!method_exists('Swift_Transport_EsmtpTransport', 'setStreamOptions')) { - $this->markTestSkipped('This test requires Swiftmailer 5.4.2 or later.'); - } - $container = $this->loadContainerFromFile('stream_options', $type); $this->assertEquals('example.org', $container->getParameter('swiftmailer.mailer.default.transport.smtp.host')); $this->assertEquals('12345', $container->getParameter('swiftmailer.mailer.default.transport.smtp.port')); @@ -338,7 +334,7 @@ public function testRedirectionConfig($type) { $container = $this->loadContainerFromFile('redirect', $type); - $this->assertSame(['swiftmailer.default.plugin' => [[]]], $container->getDefinition('swiftmailer.mailer.default.plugin.redirecting')->getTags()); + $this->assertArrayHasKey('swiftmailer.default.plugin', $container->getDefinition('swiftmailer.mailer.default.plugin.redirecting')->getTags()); $this->assertSame('single@host.com', $container->getParameter('swiftmailer.mailer.default.single_address')); $this->assertEquals(['/foo@.*/', '/.*@bar.com$/'], $container->getParameter('swiftmailer.mailer.default.delivery_whitelist')); } @@ -350,7 +346,7 @@ public function testSingleRedirectionConfig($type) { $container = $this->loadContainerFromFile('redirect_single', $type); - $this->assertSame(['swiftmailer.default.plugin' => [[]]], $container->getDefinition('swiftmailer.mailer.default.plugin.redirecting')->getTags()); + $this->assertArrayHasKey('swiftmailer.default.plugin', $container->getDefinition('swiftmailer.mailer.default.plugin.redirecting')->getTags()); $this->assertSame('single@host.com', $container->getParameter('swiftmailer.mailer.default.single_address')); $this->assertSame(['single@host.com'], $container->getParameter('swiftmailer.mailer.default.delivery_addresses')); $this->assertEquals(['/foo@.*/'], $container->getParameter('swiftmailer.mailer.default.delivery_whitelist')); @@ -363,7 +359,7 @@ public function testMultiRedirectionConfig($type) { $container = $this->loadContainerFromFile('redirect_multi', $type); - $this->assertSame(['swiftmailer.default.plugin' => [[]]], $container->getDefinition('swiftmailer.mailer.default.plugin.redirecting')->getTags()); + $this->assertArrayHasKey('swiftmailer.default.plugin', $container->getDefinition('swiftmailer.mailer.default.plugin.redirecting')->getTags()); $this->assertSame(['first@host.com', 'second@host.com'], $container->getParameter('swiftmailer.mailer.default.delivery_addresses')); } @@ -374,7 +370,7 @@ public function testAntifloodConfig($type) { $container = $this->loadContainerFromFile('antiflood', $type); - $this->assertSame(['swiftmailer.default.plugin' => [[]]], $container->getDefinition('swiftmailer.mailer.default.plugin.antiflood')->getTags()); + $this->assertArrayHasKey('swiftmailer.default.plugin', $container->getDefinition('swiftmailer.mailer.default.plugin.antiflood')->getTags()); } /** @@ -424,11 +420,6 @@ public function testDisableDeliveryWithEnvVars() private function loadContainerFromFile($file, $type, array $services = [], $skipEnvVars = false) { $container = new ContainerBuilder(); - - if ($skipEnvVars && !method_exists($container, 'resolveEnvPlaceholders')) { - $this->markTestSkipped('Runtime environment variables has been introduced in the Dependency Injection version 3.2.'); - } - $container->setParameter('kernel.debug', false); $container->setParameter('kernel.cache_dir', '/tmp'); diff --git a/composer.json b/composer.json index 3784a601..8310c240 100644 --- a/composer.json +++ b/composer.json @@ -18,22 +18,19 @@ "require": { "php": ">=7.1", "swiftmailer/swiftmailer": "^6.1.3", - "symfony/dependency-injection": "^4.3.8|^5.0", - "symfony/http-kernel": "^4.3.8|^5.0", - "symfony/config": "^4.3.8|^5.0" + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/http-kernel": "^4.4|^5.0", + "symfony/config": "^4.4|^5.0" }, "require-dev": { - "symfony/console": "^4.3.8|^5.0", - "symfony/framework-bundle": "^4.3.8|^5.0", - "symfony/phpunit-bridge": "^4.3.8|^5.0", - "symfony/yaml": "^4.3.8|^5.0" + "symfony/console": "^4.4|^5.0", + "symfony/framework-bundle": "^4.4|^5.0", + "symfony/phpunit-bridge": "^4.4|^5.0", + "symfony/yaml": "^4.4|^5.0" }, "conflict": { "twig/twig": "<1.41|<2.10" }, - "suggest": { - "psr/log": "Allows logging" - }, "autoload": { "psr-4": { "Symfony\\Bundle\\SwiftmailerBundle\\": "" }, "exclude-from-classmap": [ @@ -42,7 +39,7 @@ }, "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "3.5-dev" } } }