!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/queuepro/vendor/laravel/framework/src/Illuminate/Notifications/   drwxrwxr-x
Free 13.23 GB of 57.97 GB (22.81%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     NotificationSender.php (7.3 KB)      -rwxrwxr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace Illuminate\Notifications;

use 
Illuminate\Contracts\Queue\ShouldQueue;
use 
Illuminate\Contracts\Translation\HasLocalePreference;
use 
Illuminate\Database\Eloquent\Collection as ModelCollection;
use 
Illuminate\Database\Eloquent\Model;
use 
Illuminate\Notifications\Events\NotificationSending;
use 
Illuminate\Notifications\Events\NotificationSent;
use 
Illuminate\Support\Collection;
use 
Illuminate\Support\Str;
use 
Illuminate\Support\Traits\Localizable;

class 
NotificationSender
{
    use 
Localizable;

    
/**
     * The notification manager instance.
     *
     * @var \Illuminate\Notifications\ChannelManager
     */
    
protected $manager;

    
/**
     * The Bus dispatcher instance.
     *
     * @var \Illuminate\Contracts\Bus\Dispatcher
     */
    
protected $bus;

    
/**
     * The event dispatcher.
     *
     * @var \Illuminate\Contracts\Events\Dispatcher
     */
    
protected $events;

    
/**
     * The locale to be used when sending notifications.
     *
     * @var string|null
     */
    
protected $locale;

    
/**
     * Create a new notification sender instance.
     *
     * @param  \Illuminate\Notifications\ChannelManager  $manager
     * @param  \Illuminate\Contracts\Bus\Dispatcher  $bus
     * @param  \Illuminate\Contracts\Events\Dispatcher  $events
     * @param  string|null  $locale
     * @return void
     */
    
public function __construct($manager$bus$events$locale null)
    {
        
$this->bus $bus;
        
$this->events $events;
        
$this->locale $locale;
        
$this->manager $manager;
    }

    
/**
     * 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)
    {
        
$notifiables $this->formatNotifiables($notifiables);

        if (
$notification instanceof ShouldQueue) {
            return 
$this->queueNotification($notifiables$notification);
        }

        
$this->sendNow($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)
    {
        
$notifiables $this->formatNotifiables($notifiables);

        
$original = clone $notification;

        foreach (
$notifiables as $notifiable) {
            if (empty(
$viaChannels $channels ?: $notification->via($notifiable))) {
                continue;
            }

            
$this->withLocale($this->preferredLocale($notifiable$notification), function () use ($viaChannels$notifiable$original) {
                
$notificationId Str::uuid()->toString();

                foreach ((array) 
$viaChannels as $channel) {
                    if (! (
$notifiable instanceof AnonymousNotifiable && $channel === 'database')) {
                        
$this->sendToNotifiable($notifiable$notificationId, clone $original$channel);
                    }
                }
            });
        }
    }

    
/**
     * Get the notifiable's preferred locale for the notification.
     *
     * @param  mixed  $notifiable
     * @param  mixed  $notification
     * @return string|null
     */
    
protected function preferredLocale($notifiable$notification)
    {
        return 
$notification->locale ?? $this->locale ?? value(function () use ($notifiable) {
            if (
$notifiable instanceof HasLocalePreference) {
                return 
$notifiable->preferredLocale();
            }
        });
    }

    
/**
     * Send the given notification to the given notifiable via a channel.
     *
     * @param  mixed  $notifiable
     * @param  string  $id
     * @param  mixed  $notification
     * @param  string  $channel
     * @return void
     */
    
protected function sendToNotifiable($notifiable$id$notification$channel)
    {
        if (! 
$notification->id) {
            
$notification->id $id;
        }

        if (! 
$this->shouldSendNotification($notifiable$notification$channel)) {
            return;
        }

        
$response $this->manager->driver($channel)->send($notifiable$notification);

        
$this->events->dispatch(
            new 
NotificationSent($notifiable$notification$channel$response)
        );
    }

    
/**
     * Determines if the notification can be sent.
     *
     * @param  mixed  $notifiable
     * @param  mixed  $notification
     * @param  string  $channel
     * @return bool
     */
    
protected function shouldSendNotification($notifiable$notification$channel)
    {
        if (
method_exists($notification'shouldSend') &&
            
$notification->shouldSend($notifiable$channel) === false) {
            return 
false;
        }

        return 
$this->events->until(
            new 
NotificationSending($notifiable$notification$channel)
        ) !== 
false;
    }

    
/**
     * Queue the given notification instances.
     *
     * @param  mixed  $notifiables
     * @param  \Illuminate\Notifications\Notification  $notification
     * @return void
     */
    
protected function queueNotification($notifiables$notification)
    {
        
$notifiables $this->formatNotifiables($notifiables);

        
$original = clone $notification;

        foreach (
$notifiables as $notifiable) {
            
$notificationId Str::uuid()->toString();

            foreach ((array) 
$original->via($notifiable) as $channel) {
                
$notification = clone $original;

                
$notification->id $notificationId;

                if (! 
is_null($this->locale)) {
                    
$notification->locale $this->locale;
                }

                
$queue $notification->queue;

                if (
method_exists($notification'viaQueues')) {
                    
$queue $notification->viaQueues()[$channel] ?? null;
                }

                
$this->bus->dispatch(
                    (new 
SendQueuedNotifications($notifiable$notification, [$channel]))
                            ->
onConnection($notification->connection)
                            ->
onQueue($queue)
                            ->
delay(is_array($notification->delay) ?
                                    (
$notification->delay[$channel] ?? null)
                                    : 
$notification->delay
                            
)
                            ->
through(
                                
array_merge(
                                    
method_exists($notification'middleware') ? $notification->middleware() : [],
                                    
$notification->middleware ?? []
                                )
                            )
                );
            }
        }
    }

    
/**
     * Format the notifiables into a Collection / array if necessary.
     *
     * @param  mixed  $notifiables
     * @return \Illuminate\Database\Eloquent\Collection|array
     */
    
protected function formatNotifiables($notifiables)
    {
        if (! 
$notifiables instanceof Collection && ! is_array($notifiables)) {
            return 
$notifiables instanceof Model
                            
? new ModelCollection([$notifiables]) : [$notifiables];
        }

        return 
$notifiables;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0049 ]--