path(), 'api/v2') === 0 ? 'apiV2.' : null) ?? 'none'; return strpos($routeName, 'apiV2.') === 0; } /** * Tells if the request is within apiV1 routes * * @param Request $request * @return boolean */ public static function isRequestForApiV1(Request $request): bool { // Small hack to ensure to know if route is From APIv1 $routePrefix = (strpos(static::getRoutePrefix($request), 'api/v1') ? 'v1' : null) ?? (strpos($request->path(), 'api/v1') === 0 ? 'v1' : null) ?? 'none'; return strpos($routePrefix, 'v1') === 0; } /** * Try to get current route name * * @param Request $request * @return string|null */ public static function getRouteName(Request $request) { return Route::currentRouteName() ?? ($request->route() ? $request->route()->getName() : null); } /** * Try to get current route prefix * * @param Request $request * @return string|null */ public static function getRoutePrefix(Request $request) { return (Route::getCurrentRoute() ? Route::getCurrentRoute()->getPrefix() : null) ?? ($request->route() ? $request->route()->getPrefix() : null); } /** * Try to get route from request * * @param Request $request * @return \Illuminate\Routing\Route|null */ public static function getRoute(Request $request) { return Route::getRoutes()->getByName(static::getRouteName($request)); } /** * Get composer.json infos * * @return array */ public static function getPackageInfo(): array { if (!static::$packageInfos) { static::$packageInfos = \json_decode(\file_get_contents(__DIR__ . '/../../composer.json'), true); } return static::$packageInfos; } }