File: D:/HostingSpaces/SBogers10/lmbm.komma.pro/app/Http/Middleware/AbstractResolver.php
<?php
namespace App\Http\Middleware;
use App\KommaApp\Routes\Models\RedirectRoute;
use App\KommaApp\Routes\Models\Route;
use App\KommaApp\Routes\RedirectRouteModelInterface;
use App\KommaApp\Routes\RouteModelInterface;
use Closure;
use Illuminate\Http\Request;
abstract class AbstractResolver
{
/** @var string The key that holds a value that can be used to determine if the route has been resolved or not*/
private $key;
/**
* @var RouteModelInterface $routeClass.
*/
protected $routeClass;
/**
* @var RedirectRouteModelInterface $routeClass.
*/
protected $redirectRouteClass;
public function __construct()
{
$this->key = config('app.route_resolved_session_key');
$this->routeClass = Route::class;
$this->redirectRouteClass = RedirectRoute::class;
}
/**
* Returns true if the route is resolved. False if not
*
* @param Request $request
* @return bool
*/
public function isRouteResolved(Request $request) : bool
{
if(isset($request->resolved) && $request->resolved) return true;
elseif(isset($request->resolved)) return false;
else{
$request->resolved = false;
return false;
}
}
/**
* Set if the route is resolved or not
*
* @param Request $request
* @param bool $resolved
* @return Request
*/
public function setRouteResolved(Request $request, $resolved = true) : Request
{
$request->resolved = true;
return $request;
}
/**
* Handle an incoming request.
*
* @param Request $request
* @param \Closure $next
* @return mixed
*/
abstract public function handle($request, Closure $next);
}