mirror of
https://github.com/bitinflow/expose.git
synced 2026-03-13 21:45:55 +00:00
wip
This commit is contained in:
65
app/Http/RouteGenerator.php
Normal file
65
app/Http/RouteGenerator.php
Normal file
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http;
|
||||
|
||||
use Ratchet\WebSocket\MessageComponentInterface;
|
||||
use Ratchet\WebSocket\WsServer;
|
||||
use React\EventLoop\LoopInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\Routing\RouteCollection;
|
||||
|
||||
class RouteGenerator
|
||||
{
|
||||
/** @var \Symfony\Component\Routing\RouteCollection */
|
||||
protected $routes;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->routes = new RouteCollection;
|
||||
}
|
||||
|
||||
public function getRoutes(): RouteCollection
|
||||
{
|
||||
return $this->routes;
|
||||
}
|
||||
|
||||
public function get(string $uri, $action, string $condition = '')
|
||||
{
|
||||
$this->addRoute('GET', $uri, $action, $condition);
|
||||
}
|
||||
|
||||
public function post(string $uri, $action, string $condition = '')
|
||||
{
|
||||
$this->addRoute('POST', $uri, $action, $condition);
|
||||
}
|
||||
|
||||
public function put(string $uri, $action, string $condition = '')
|
||||
{
|
||||
$this->addRoute('PUT', $uri, $action, $condition);
|
||||
}
|
||||
|
||||
public function patch(string $uri, $action, string $condition = '')
|
||||
{
|
||||
$this->addRoute('PATCH', $uri, $action, $condition);
|
||||
}
|
||||
|
||||
public function delete(string $uri, $action, string $condition = '')
|
||||
{
|
||||
$this->addRoute('DELETE', $uri, $action, $condition);
|
||||
}
|
||||
|
||||
public function addRoute(string $method, string $uri, $action, string $condition = '')
|
||||
{
|
||||
$this->routes->add("{$method}-($uri}", $this->getRoute($method, $uri, $action, $condition));
|
||||
}
|
||||
|
||||
public function addSymfonyRoute(string $name, Route $route)
|
||||
{
|
||||
$this->routes->add($name, $route);
|
||||
}
|
||||
|
||||
protected function getRoute(string $method, string $uri, $action, string $condition = ''): Route
|
||||
{
|
||||
return new Route($uri, ['_controller' => app($action)], [], [], null, [], [$method], $condition);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user