File: D:/HostingSpaces/SBogers95/rentman.io/app/Http/Middleware/AbstractResolver.php
<?php
namespace App\Http\Middleware;
use App\Komma\Routes\Models\RedirectRoute;
use App\Komma\Routes\Models\Route;
use App\Komma\Routes\RedirectRouteModelInterface;
use App\Komma\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.
*/
protected $routeClass;
/**
* @var RedirectRouteModelInterface.
*/
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
*/
protected 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
* @return Request
*/
protected function setRouteResolved(Request $request) : Request
{
$request->resolved = true;
return $request;
}
/**
* Check if the route is started with kms.
* Those routes could be skips by some middleware.
*
* @param Request $request
* @return mixed
*/
protected function isKmsRoute(Request $request)
{
//Skip this when it is an Kms route
//If we split the Route files in non kms and kms routes then we could remove this line
if ($request->segment(1) == 'kms') {
return true;
}
}
/**
* Check if the route is root.
* Those routes could be skips by some middleware.
*
* @param Request $request
* @return mixed
*/
protected function isRootRoute(Request $request)
{
//Skip this when it is an Kms route
//If we split the Route files in non kms and kms routes then we could remove this line
if ($request->getRequestUri() === '/') {
return true;
}
}
/**
* Handle an incoming request.
*
* @param Request $request
* @param \Closure $next
* @return mixed
*/
abstract public function handle($request, Closure $next);
}