laravel-websockets/src/Router.php

32 lines
802 B
PHP
Raw Normal View History

2018-11-20 10:32:56 +00:00
<?php
namespace BeyondCode\LaravelWebSockets;
use Symfony\Component\Routing\Route;
use Symfony\Component\Routing\RouteCollection;
use BeyondCode\LaravelWebSockets\Exceptions\InvalidWebSocketController;
class Router
{
/** @var RouteCollection */
protected $routes;
public function __construct()
{
$this->routes = new RouteCollection;
}
public function addRoute($uri, $action)
{
if (! is_subclass_of($action, WebSocketController::class)) {
throw InvalidWebSocketController::withController($action);
}
$this->routes->add($uri, $this->getRoute($uri, $action));
}
protected function getRoute($uri, $action) : Route
{
return new Route($uri, ['_controller' => app($action)], [], [], null, [], ['GET']);
}
}