bug #37849 [FrameworkBundle] Add missing mailer transports in xsd (l-vo)
This PR was merged into the 4.4 branch.
Discussion
----------
[FrameworkBundle] Add missing mailer transports in xsd
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
Commits
-------
c21df9b50a
[FrameworkBundle] Add missing mailer transports in xsd
This commit is contained in:
commit
9d995bdd3b
@ -571,11 +571,16 @@
|
|||||||
|
|
||||||
<xsd:complexType name="mailer">
|
<xsd:complexType name="mailer">
|
||||||
<xsd:sequence>
|
<xsd:sequence>
|
||||||
|
<xsd:element name="transport" type="mailer_transport" minOccurs="0" maxOccurs="unbounded" />
|
||||||
<xsd:element name="envelope" type="mailer_envelope" minOccurs="0" maxOccurs="1" />
|
<xsd:element name="envelope" type="mailer_envelope" minOccurs="0" maxOccurs="1" />
|
||||||
</xsd:sequence>
|
</xsd:sequence>
|
||||||
<xsd:attribute name="dsn" type="xsd:string" />
|
<xsd:attribute name="dsn" type="xsd:string" />
|
||||||
</xsd:complexType>
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="mailer_transport" mixed="true">
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
<xsd:complexType name="mailer_envelope">
|
<xsd:complexType name="mailer_envelope">
|
||||||
<xsd:sequence>
|
<xsd:sequence>
|
||||||
<xsd:element name="sender" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
<xsd:element name="sender" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
||||||
|
@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
|
||||||
|
|
||||||
|
return static function (ContainerConfigurator $container) {
|
||||||
|
$container->extension('framework', [
|
||||||
|
'mailer' => [
|
||||||
|
'dsn' => 'smtp://example.com',
|
||||||
|
'envelope' => [
|
||||||
|
'sender' => 'sender@example.org',
|
||||||
|
'recipients' => ['redirected@example.org', 'redirected1@example.org'],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
};
|
@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
|
||||||
|
|
||||||
|
return static function (ContainerConfigurator $container) {
|
||||||
|
$container->extension('framework', [
|
||||||
|
'mailer' => [
|
||||||
|
'transports' => [
|
||||||
|
'transport1' => 'smtp://example1.com',
|
||||||
|
'transport2' => 'smtp://example2.com',
|
||||||
|
],
|
||||||
|
'envelope' => [
|
||||||
|
'sender' => 'sender@example.org',
|
||||||
|
'recipients' => ['redirected@example.org', 'redirected1@example.org'],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
};
|
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" ?>
|
||||||
|
|
||||||
|
<container xmlns="http://symfony.com/schema/dic/services"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:framework="http://symfony.com/schema/dic/symfony"
|
||||||
|
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd
|
||||||
|
http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
|
||||||
|
|
||||||
|
<framework:config>
|
||||||
|
<framework:mailer>
|
||||||
|
<framework:transport name="transport1">smtp://example1.com</framework:transport>
|
||||||
|
<framework:transport name="transport2">smtp://example2.com</framework:transport>
|
||||||
|
<framework:envelope>
|
||||||
|
<framework:sender>sender@example.org</framework:sender>
|
||||||
|
<framework:recipients>redirected@example.org</framework:recipients>
|
||||||
|
<framework:recipients>redirected1@example.org</framework:recipients>
|
||||||
|
</framework:envelope>
|
||||||
|
</framework:mailer>
|
||||||
|
</framework:config>
|
||||||
|
</container>
|
@ -0,0 +1,10 @@
|
|||||||
|
framework:
|
||||||
|
mailer:
|
||||||
|
transports:
|
||||||
|
transport1: 'smtp://example1.com'
|
||||||
|
transport2: 'smtp://example2.com'
|
||||||
|
envelope:
|
||||||
|
sender: sender@example.org
|
||||||
|
recipients:
|
||||||
|
- redirected@example.org
|
||||||
|
- redirected1@example.org
|
@ -1617,13 +1617,29 @@ abstract class FrameworkExtensionTest extends TestCase
|
|||||||
], $defaultOptions['peer_fingerprint']);
|
], $defaultOptions['peer_fingerprint']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testMailer(): void
|
public function provideMailer(): array
|
||||||
{
|
{
|
||||||
$container = $this->createContainerFromFile('mailer');
|
return [
|
||||||
|
['mailer_with_dsn', ['main' => 'smtp://example.com']],
|
||||||
|
['mailer_with_transports', [
|
||||||
|
'transport1' => 'smtp://example1.com',
|
||||||
|
'transport2' => 'smtp://example2.com',
|
||||||
|
]],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider provideMailer
|
||||||
|
*/
|
||||||
|
public function testMailer(string $configFile, array $expectedTransports): void
|
||||||
|
{
|
||||||
|
$container = $this->createContainerFromFile($configFile);
|
||||||
|
|
||||||
$this->assertTrue($container->hasAlias('mailer'));
|
$this->assertTrue($container->hasAlias('mailer'));
|
||||||
|
$this->assertTrue($container->hasDefinition('mailer.transports'));
|
||||||
|
$this->assertSame($expectedTransports, $container->getDefinition('mailer.transports')->getArgument(0));
|
||||||
$this->assertTrue($container->hasDefinition('mailer.default_transport'));
|
$this->assertTrue($container->hasDefinition('mailer.default_transport'));
|
||||||
$this->assertSame('smtp://example.com', $container->getDefinition('mailer.default_transport')->getArgument(0));
|
$this->assertSame(current($expectedTransports), $container->getDefinition('mailer.default_transport')->getArgument(0));
|
||||||
$this->assertTrue($container->hasDefinition('mailer.envelope_listener'));
|
$this->assertTrue($container->hasDefinition('mailer.envelope_listener'));
|
||||||
$l = $container->getDefinition('mailer.envelope_listener');
|
$l = $container->getDefinition('mailer.envelope_listener');
|
||||||
$this->assertSame('sender@example.org', $l->getArgument(0));
|
$this->assertSame('sender@example.org', $l->getArgument(0));
|
||||||
|
Reference in New Issue
Block a user