AnonymousNotifiable.php
TLDR
This file defines the AnonymousNotifiable
class, which is used for sending notifications in Laravel. It contains methods for adding routing information, sending notifications, retrieving routing information, and getting the primary key of the notifiable object.
Methods
route
This method adds routing information to the target. It takes in two parameters: $channel
(string) and $route
(mixed). The method throws an InvalidArgumentException
if the channel is 'database' since the database channel does not support on-demand notifications.
notify
This method sends the given notification. It takes in one parameter: $notification
(mixed).
notifyNow
This method sends the given notification immediately. It takes in one parameter: $notification
(mixed).
routeNotificationFor
This method retrieves the notification routing information for the given driver. It takes in one parameter: $driver
(string). If the routing information for the specified driver is not found, it returns null
.
getKey
This method gets the value of the notifiable's primary key. It does not take any parameters and it returns the primary key value.
<?php
namespace Illuminate\Notifications;
use Illuminate\Contracts\Notifications\Dispatcher;
use InvalidArgumentException;
class AnonymousNotifiable
{
/**
* All of the notification routing information.
*
* @var array
*/
public $routes = [];
/**
* Add routing information to the target.
*
* @param string $channel
* @param mixed $route
* @return $this
*
* @throws \InvalidArgumentException
*/
public function route($channel, $route)
{
if ($channel === 'database') {
throw new InvalidArgumentException('The database channel does not support on-demand notifications.');
}
$this->routes[$channel] = $route;
return $this;
}
/**
* Send the given notification.
*
* @param mixed $notification
* @return void
*/
public function notify($notification)
{
app(Dispatcher::class)->send($this, $notification);
}
/**
* Send the given notification immediately.
*
* @param mixed $notification
* @return void
*/
public function notifyNow($notification)
{
app(Dispatcher::class)->sendNow($this, $notification);
}
/**
* Get the notification routing information for the given driver.
*
* @param string $driver
* @return mixed
*/
public function routeNotificationFor($driver)
{
return $this->routes[$driver] ?? null;
}
/**
* Get the value of the notifiable's primary key.
*
* @return mixed
*/
public function getKey()
{
//
}
}