update v 1.0.7.5
This commit is contained in:
		
							
								
								
									
										219
									
								
								vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										219
									
								
								vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,219 @@ | ||||
| <?php | ||||
|  | ||||
| namespace Illuminate\Broadcasting; | ||||
|  | ||||
| use Pusher; | ||||
| use Closure; | ||||
| use Illuminate\Support\Arr; | ||||
| use InvalidArgumentException; | ||||
| use Illuminate\Broadcasting\Broadcasters\LogBroadcaster; | ||||
| use Illuminate\Broadcasting\Broadcasters\RedisBroadcaster; | ||||
| use Illuminate\Broadcasting\Broadcasters\PusherBroadcaster; | ||||
| use Illuminate\Contracts\Broadcasting\Factory as FactoryContract; | ||||
|  | ||||
| class BroadcastManager implements FactoryContract | ||||
| { | ||||
|     /** | ||||
|      * The application instance. | ||||
|      * | ||||
|      * @var \Illuminate\Foundation\Application | ||||
|      */ | ||||
|     protected $app; | ||||
|  | ||||
|     /** | ||||
|      * The array of resolved broadcast drivers. | ||||
|      * | ||||
|      * @var array | ||||
|      */ | ||||
|     protected $drivers = []; | ||||
|  | ||||
|     /** | ||||
|      * The registered custom driver creators. | ||||
|      * | ||||
|      * @var array | ||||
|      */ | ||||
|     protected $customCreators = []; | ||||
|  | ||||
|     /** | ||||
|      * Create a new manager instance. | ||||
|      * | ||||
|      * @param  \Illuminate\Foundation\Application  $app | ||||
|      * @return void | ||||
|      */ | ||||
|     public function __construct($app) | ||||
|     { | ||||
|         $this->app = $app; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Get a driver instance. | ||||
|      * | ||||
|      * @param  string  $driver | ||||
|      * @return mixed | ||||
|      */ | ||||
|     public function connection($driver = null) | ||||
|     { | ||||
|         return $this->driver($driver); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Get a driver instance. | ||||
|      * | ||||
|      * @param  string  $name | ||||
|      * @return mixed | ||||
|      */ | ||||
|     public function driver($name = null) | ||||
|     { | ||||
|         $name = $name ?: $this->getDefaultDriver(); | ||||
|  | ||||
|         return $this->drivers[$name] = $this->get($name); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Attempt to get the connection from the local cache. | ||||
|      * | ||||
|      * @param  string  $name | ||||
|      * @return \Illuminate\Contracts\Broadcasting\Broadcaster | ||||
|      */ | ||||
|     protected function get($name) | ||||
|     { | ||||
|         return isset($this->drivers[$name]) ? $this->drivers[$name] : $this->resolve($name); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Resolve the given store. | ||||
|      * | ||||
|      * @param  string  $name | ||||
|      * @return \Illuminate\Contracts\Broadcasting\Broadcaster | ||||
|      * | ||||
|      * @throws \InvalidArgumentException | ||||
|      */ | ||||
|     protected function resolve($name) | ||||
|     { | ||||
|         $config = $this->getConfig($name); | ||||
|  | ||||
|         if (is_null($config)) { | ||||
|             throw new InvalidArgumentException("Broadcaster [{$name}] is not defined."); | ||||
|         } | ||||
|  | ||||
|         if (isset($this->customCreators[$config['driver']])) { | ||||
|             return $this->callCustomCreator($config); | ||||
|         } else { | ||||
|             $driverMethod = 'create'.ucfirst($config['driver']).'Driver'; | ||||
|  | ||||
|             if (method_exists($this, $driverMethod)) { | ||||
|                 return $this->{$driverMethod}($config); | ||||
|             } else { | ||||
|                 throw new InvalidArgumentException("Driver [{$config['driver']}] is not supported."); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Call a custom driver creator. | ||||
|      * | ||||
|      * @param  array  $config | ||||
|      * @return mixed | ||||
|      */ | ||||
|     protected function callCustomCreator(array $config) | ||||
|     { | ||||
|         return $this->customCreators[$config['driver']]($this->app, $config); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Create an instance of the driver. | ||||
|      * | ||||
|      * @param  array  $config | ||||
|      * @return \Illuminate\Contracts\Broadcasting\Broadcaster | ||||
|      */ | ||||
|     protected function createPusherDriver(array $config) | ||||
|     { | ||||
|         return new PusherBroadcaster( | ||||
|             new Pusher($config['key'], $config['secret'], $config['app_id'], Arr::get($config, 'options', [])) | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Create an instance of the driver. | ||||
|      * | ||||
|      * @param  array  $config | ||||
|      * @return \Illuminate\Contracts\Broadcasting\Broadcaster | ||||
|      */ | ||||
|     protected function createRedisDriver(array $config) | ||||
|     { | ||||
|         return new RedisBroadcaster( | ||||
|             $this->app->make('redis'), Arr::get($config, 'connection') | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Create an instance of the driver. | ||||
|      * | ||||
|      * @param  array  $config | ||||
|      * @return \Illuminate\Contracts\Broadcasting\Broadcaster | ||||
|      */ | ||||
|     protected function createLogDriver(array $config) | ||||
|     { | ||||
|         return new LogBroadcaster( | ||||
|             $this->app->make('Psr\Log\LoggerInterface') | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Get the connection configuration. | ||||
|      * | ||||
|      * @param  string  $name | ||||
|      * @return array | ||||
|      */ | ||||
|     protected function getConfig($name) | ||||
|     { | ||||
|         return $this->app['config']["broadcasting.connections.{$name}"]; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Get the default driver name. | ||||
|      * | ||||
|      * @return string | ||||
|      */ | ||||
|     public function getDefaultDriver() | ||||
|     { | ||||
|         return $this->app['config']['broadcasting.default']; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Set the default driver name. | ||||
|      * | ||||
|      * @param  string  $name | ||||
|      * @return void | ||||
|      */ | ||||
|     public function setDefaultDriver($name) | ||||
|     { | ||||
|         $this->app['config']['broadcasting.default'] = $name; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Register a custom driver creator Closure. | ||||
|      * | ||||
|      * @param  string    $driver | ||||
|      * @param  \Closure  $callback | ||||
|      * @return $this | ||||
|      */ | ||||
|     public function extend($driver, Closure $callback) | ||||
|     { | ||||
|         $this->customCreators[$driver] = $callback; | ||||
|  | ||||
|         return $this; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Dynamically call the default driver instance. | ||||
|      * | ||||
|      * @param  string  $method | ||||
|      * @param  array   $parameters | ||||
|      * @return mixed | ||||
|      */ | ||||
|     public function __call($method, $parameters) | ||||
|     { | ||||
|         return call_user_func_array([$this->driver(), $method], $parameters); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Sujit Prasad
					Sujit Prasad