8000 Move logger & mailer to dev dependencies and remove custom exception · symfony/symfony@7829b1b · GitHub
[go: up one dir, main page]

Skip to content

Commit 7829b1b

Browse files
Move logger & mailer to dev dependencies and remove custom exception
1 parent ddf16cb commit 7829b1b

File tree

4 files changed

+20
-36
lines changed

4 files changed

+20
-36
lines changed

src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsTransportFactory.php

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
use Psr\Log\LoggerInterface;
1515
use Symfony\Component\Mailer\MailerInterface;
16-
use Symfony\Component\Notifier\Exception\MissingFactoryDependencyException;
16+
use Symfony\Component\Notifier\Exception\LogicException;
1717
use Symfony\Component\Notifier\Exception\UnsupportedSchemeException;
1818
use Symfony\Component\Notifier\Transport\AbstractTransportFactory;
1919
use Symfony\Component\Notifier\Transport\Dsn;
@@ -42,7 +42,7 @@ public function create(Dsn $dsn): FakeSmsEmailTransport|FakeSmsLoggerTransport
4242

4343
if ('fakesms+email' === $scheme) {
4444
if (null === $this->mailer) {
45-
throw new MissingFactoryDependencyException($scheme, MailerInterface::class);
45+
$this->throwMissingDependencyException($scheme, MailerInterface::class, 'symfony/mailer');
4646
}
4747

4848
$mailerTransport = $dsn->getHost();
@@ -54,7 +54,7 @@ public function create(Dsn $dsn): FakeSmsEmailTransport|FakeSmsLoggerTransport
5454

5555
if ('fakesms+logger' === $scheme) {
5656
if (null === $this->logger) {
57-
throw new MissingFactoryDependencyException($scheme, LoggerInterface::class);
57+
$this->throwMissingDependencyException($scheme, LoggerInterface::class, 'psr/log');
5858
}
5959

6060
return new FakeSmsLoggerTransport($this->logger);
@@ -67,4 +67,16 @@ protected function getSupportedSchemes(): array
6767
{
6868
return ['fakesms+email', 'fakesms+logger'];
6969
}
70+
71+
private function throwMissingDependencyException(string $scheme, string $missingDependency, string $suggestedPackage): void
72+
{
73+
throw new LogicException(
74+
sprintf(
75+
'Cannot create a transport for scheme "%s" without providing an implementation of "%s". Try running "composer require %s".',
76+
$scheme,
77+
$missingDependency,
78+
$suggestedPackage,
79+
)
80+
);
81+
}
7082
}

src/Symfony/Component/Notifier/Bridge/FakeSms/composer.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,11 @@
2424
"php": ">=8.1",
2525
"symfony/http-client": "^5.4|^6.0",
2626
"symfony/notifier": "^6.2",
27-
"symfony/event-dispatcher-contracts": "^2|^3",
28-
"symfony/mailer": "^5.4|^6.0"
27+
"symfony/event-dispatcher-contracts": "^2|^3"
28+
},
29+
"require-dev": {
30+
"symfony/mailer": "^5.4|^6.0",
31+
"psr/log": "^1|^2|^3"
2932
},
3033
"autoload": {
3134
"psr-4": { "Symfony\\Component\\Notifier\\Bridge\\FakeSms\\": "" },

src/Symfony/Component/Notifier/Exception/MissingFactoryDependencyException.php

Lines changed: 0 additions & 29 deletions
This file was deleted.

src/Symfony/Component/Notifier/Transport/TransportFactoryInterface.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
namespace Symfony\Component\Notifier\Transport;
1313

1414
use Symfony\Component\Notifier\Exception\IncompleteDsnException;
15-
use Symfony\Component\Notifier\Exception\MissingFactoryDependencyException;
1615
use Symfony\Component\Notifier\Exception\MissingRequiredOptionException;
1716
use Symfony\Component\Notifier\Exception\UnsupportedSchemeException;
1817

@@ -25,7 +24,6 @@ interface TransportFactoryInterface
2524
* @throws UnsupportedSchemeException
2625
* @throws IncompleteDsnException
2726
* @throws MissingRequiredOptionException
28-
* @throws MissingFactoryDependencyException
2927
*/
3028
public function create(Dsn $dsn): TransportInterface;
3129

0 commit comments

Comments
 (0)
0