/laravel-controller-aware-routes

Adds Controller-Aware Routes To Laravel

Primary LanguagePHPMIT LicenseMIT

Laravel Controller Aware Routes

Latest Version on Packagist Total Downloads Repo Size Repo Size

Requirement

This package requires PHP 7.4 or higher.

Installation

You can install the package via composer:

composer require mojtabaahn/laravel-controller-routes

Usage

<?php
// routes/web.php

use MojtabaaHN\LaravelControllerRoutes\Routes;
use Illuminate\Support\Facades\Route;


Routes::make('UserController')->methods(function (ControllerAwareRouter $router) {
    $router->get('user/{user}', 'profile')->name('user.profile');
    $router->get('user/{user}/post/{post}','post')->name('user.post');
});

// Or

Routes::make()
    ->controller('UserController')
    ->methods(function (ControllerAwareRouter $router) {
        $router->get('user/{user}', 'profile')->name('user.profile');
        $router->get('user/{user}/post/{post}','post')->name('user.post');
    });

// Same as

Route::get('user/{user}', 'UserController@profile')->name('user.profile');
Route::get('user/{user}/post/{post}','UserController@posts')->name('user.posts');

// Using RouteRegistrar methods

Routes::make()
    ->prefix('user/{user}')
    ->name('user.')
    ->middleware('web')
    ->controller('UserController')
    ->methods(function (ControllerAwareRouter $router) {
        $router->get('/', 'profile')->name('profile');
        $router->get('posts','posts')->name('posts');
    });

// same as 

Route::prefix('user/{user}')
    ->name('user.')
    ->middleware('web')
    ->group(function(){
        Route::get('/', 'UserController@profile')->name('profile');
        Route::get('posts','UserController@posts')->name('posts');
    });

Testing

composer test

License

The MIT License (MIT). Please see License File for more information.