PHP code example of micaeldias / laravel-single-file-routes
1. Go to this page and download the library: Download micaeldias/laravel-single-file-routes library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
micaeldias / laravel-single-file-routes example snippets
namespace App\Http\Routes\Api\User;
use App\Http\ApiRouteGroup;
use Illuminate\Http\Request;
use MicaelDias\SingleFileRoutes\Routing\Route;
#[Route(method: 'GET', uri: '/user/{id}', group: ApiRouteGroup::class)]
class Get
{
/**
* Handle the request.
*/
public function __invoke(Request $request, int $id)
{
// return view('user', ['id' => $id]);
// return new JsonResponse(['id' => $id]);
// or any other response supported by Laravel.
}
}
#[Route(method: 'GET', uri: '/user/{id}')]
class Get {
__invoke (Request $request, int $id) {
// Handle the request
}
}
class UserController
{
#[Route(method: 'GET', uri: '/user/{id}')]
public function show(int $id): View
{
return view('user.profile', [
'user' => User::findOrFail($id)
]);
}
}
interface RouteGroup
{
/**
* The URI prefix for all routes on this group.
*/
public static function prefix(): string;
/**
* The middleware used for all routes on this group.
*/
public static function middleware(): array;
/**
* Assign this route group to a subdomain.
*/
public static function domain(): ?string;
}
#[Route(method: 'GET', uri: '/user', group: ApiRouteGroup::class)]
#[Route(method: 'GET', uri: '/users', group: ApiRouteGroup::class)]
public function show(int $id): View
namespace App\Http\Routes;
use MicaelDias\SingleFileRoutes\Routing\RouteGroup;
class ApiRouteGroup implements RouteGroup
{
/**
* {@inheritdoc}
*/
public static function prefix(): string
{
return '/api';
}
/**
* {@inheritdoc}
*/
public static function middleware(): array
{
return [];
}
/**
* {@inheritdoc}
*/
public static function domain(): ?string
{
return null;
}
}
namespace App\Http\Routes\Api\User;
use Illuminate\Http\Request;
use MicaelDias\SingleFileRoutes\Routing\Route;
use App\Http\Routes\ApiRouteGroup;
#[Route(method: 'GET', uri: '/user', group: ApiRouteGroup::class)]
class Get
{
/**
* Handle the request.
*/
public function __invoke(Request $request)
{
// @todo handle request
}
}