Laravel version update
Laravel version update
This commit is contained in:
171
vendor/laravel/framework/src/Illuminate/Notifications/ChannelManager.php
vendored
Normal file
171
vendor/laravel/framework/src/Illuminate/Notifications/ChannelManager.php
vendored
Normal file
@@ -0,0 +1,171 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Notifications;
|
||||
|
||||
use InvalidArgumentException;
|
||||
use Illuminate\Support\Manager;
|
||||
use Nexmo\Client as NexmoClient;
|
||||
use GuzzleHttp\Client as HttpClient;
|
||||
use Illuminate\Contracts\Events\Dispatcher;
|
||||
use Illuminate\Contracts\Bus\Dispatcher as Bus;
|
||||
use Nexmo\Client\Credentials\Basic as NexmoCredentials;
|
||||
use Illuminate\Contracts\Notifications\Factory as FactoryContract;
|
||||
use Illuminate\Contracts\Notifications\Dispatcher as DispatcherContract;
|
||||
|
||||
class ChannelManager extends Manager implements DispatcherContract, FactoryContract
|
||||
{
|
||||
/**
|
||||
* The default channel used to deliver messages.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $defaultChannel = 'mail';
|
||||
|
||||
/**
|
||||
* 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->app->make(Bus::class), $this->app->make(Dispatcher::class))
|
||||
)->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->app->make(Bus::class), $this->app->make(Dispatcher::class))
|
||||
)->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->app->make(Channels\DatabaseChannel::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of the broadcast driver.
|
||||
*
|
||||
* @return \Illuminate\Notifications\Channels\BroadcastChannel
|
||||
*/
|
||||
protected function createBroadcastDriver()
|
||||
{
|
||||
return $this->app->make(Channels\BroadcastChannel::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of the mail driver.
|
||||
*
|
||||
* @return \Illuminate\Notifications\Channels\MailChannel
|
||||
*/
|
||||
protected function createMailDriver()
|
||||
{
|
||||
return $this->app->make(Channels\MailChannel::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of the Nexmo driver.
|
||||
*
|
||||
* @return \Illuminate\Notifications\Channels\NexmoSmsChannel
|
||||
*/
|
||||
protected function createNexmoDriver()
|
||||
{
|
||||
return new Channels\NexmoSmsChannel(
|
||||
new NexmoClient(new NexmoCredentials(
|
||||
$this->app['config']['services.nexmo.key'],
|
||||
$this->app['config']['services.nexmo.secret']
|
||||
)),
|
||||
$this->app['config']['services.nexmo.sms_from']
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of the Slack driver.
|
||||
*
|
||||
* @return \Illuminate\Notifications\Channels\SlackWebhookChannel
|
||||
*/
|
||||
protected function createSlackDriver()
|
||||
{
|
||||
return new Channels\SlackWebhookChannel(new HttpClient);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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->app->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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user