Primo Committ
This commit is contained in:
162
vendor/laravel/framework/src/Illuminate/Notifications/ChannelManager.php
vendored
Normal file
162
vendor/laravel/framework/src/Illuminate/Notifications/ChannelManager.php
vendored
Normal file
@@ -0,0 +1,162 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Notifications;
|
||||
|
||||
use Illuminate\Contracts\Bus\Dispatcher as Bus;
|
||||
use Illuminate\Contracts\Events\Dispatcher;
|
||||
use Illuminate\Contracts\Notifications\Dispatcher as DispatcherContract;
|
||||
use Illuminate\Contracts\Notifications\Factory as FactoryContract;
|
||||
use Illuminate\Support\Manager;
|
||||
use InvalidArgumentException;
|
||||
|
||||
class ChannelManager extends Manager implements DispatcherContract, FactoryContract
|
||||
{
|
||||
/**
|
||||
* The default channel used to deliver messages.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $defaultChannel = 'mail';
|
||||
|
||||
/**
|
||||
* The locale used when sending notifications.
|
||||
*
|
||||
* @var string|null
|
||||
*/
|
||||
protected $locale;
|
||||
|
||||
/**
|
||||
* Send the given notification to the given notifiable entities.
|
||||
*
|
||||
* @param \Illuminate\Support\Collection|array|mixed $notifiables
|
||||
* @param mixed $notification
|
||||
* @return void
|
||||
*/
|
||||
public function send($notifiables, $notification)
|
||||
{
|
||||
return (new NotificationSender(
|
||||
$this, $this->container->make(Bus::class), $this->container->make(Dispatcher::class), $this->locale)
|
||||
)->send($notifiables, $notification);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send the given notification immediately.
|
||||
*
|
||||
* @param \Illuminate\Support\Collection|array|mixed $notifiables
|
||||
* @param mixed $notification
|
||||
* @param array|null $channels
|
||||
* @return void
|
||||
*/
|
||||
public function sendNow($notifiables, $notification, array $channels = null)
|
||||
{
|
||||
return (new NotificationSender(
|
||||
$this, $this->container->make(Bus::class), $this->container->make(Dispatcher::class), $this->locale)
|
||||
)->sendNow($notifiables, $notification, $channels);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a channel instance.
|
||||
*
|
||||
* @param string|null $name
|
||||
* @return mixed
|
||||
*/
|
||||
public function channel($name = null)
|
||||
{
|
||||
return $this->driver($name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of the database driver.
|
||||
*
|
||||
* @return \Illuminate\Notifications\Channels\DatabaseChannel
|
||||
*/
|
||||
protected function createDatabaseDriver()
|
||||
{
|
||||
return $this->container->make(Channels\DatabaseChannel::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of the broadcast driver.
|
||||
*
|
||||
* @return \Illuminate\Notifications\Channels\BroadcastChannel
|
||||
*/
|
||||
protected function createBroadcastDriver()
|
||||
{
|
||||
return $this->container->make(Channels\BroadcastChannel::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of the mail driver.
|
||||
*
|
||||
* @return \Illuminate\Notifications\Channels\MailChannel
|
||||
*/
|
||||
protected function createMailDriver()
|
||||
{
|
||||
return $this->container->make(Channels\MailChannel::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new driver instance.
|
||||
*
|
||||
* @param string $driver
|
||||
* @return mixed
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
protected function createDriver($driver)
|
||||
{
|
||||
try {
|
||||
return parent::createDriver($driver);
|
||||
} catch (InvalidArgumentException $e) {
|
||||
if (class_exists($driver)) {
|
||||
return $this->container->make($driver);
|
||||
}
|
||||
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the default channel driver name.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getDefaultDriver()
|
||||
{
|
||||
return $this->defaultChannel;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the default channel driver name.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function deliversVia()
|
||||
{
|
||||
return $this->getDefaultDriver();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the default channel driver name.
|
||||
*
|
||||
* @param string $channel
|
||||
* @return void
|
||||
*/
|
||||
public function deliverVia($channel)
|
||||
{
|
||||
$this->defaultChannel = $channel;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the locale of notifications.
|
||||
*
|
||||
* @param string $locale
|
||||
* @return $this
|
||||
*/
|
||||
public function locale($locale)
|
||||
{
|
||||
$this->locale = $locale;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user