PHP code example of mehrdad-dadkhah / laravel-vroute

1. Go to this page and download the library: Download mehrdad-dadkhah/laravel-vroute 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/ */

    

mehrdad-dadkhah / laravel-vroute example snippets


    Route::namespace('Admin')->prefix('admin')->group(function () {
    
        Route::namespace('V1')->prefix('v1')->group(function () {
    
            Route::post('users/login', 'UserAPIController@login');
            Route::post('users/refresh-token', 'UserAPIController@refreshToken');
            Route::post('users/forget-password', 'UserAPIController@forgetPassword');
            Route::post('users/register', 'UserAPIController@register');
    
            Route::resource('faqs', 'FaqAPIController');
            Route::get('settings/check-version', 'SettingAPIController@checkVersion');
    
            Route::group(['middleware' => 'auth:api'], function () {
                Route::post('users/logout', 'UserAPIController@logout');
                Route::get('users/show', 'UserAPIController@show');
                Route::put('users/notification-toggle', 'UserAPIController@toggleStatusNotification');
    
                Route::get('users/channels', 'UserTaggingAPIController@channels');
    
                /** ---------------------- ACL middleware  ---------------------- */
                Route::middleware(['acl'])->group(function () {
                    Route::get('scores/totals', 'ScoreAPIController@totals');
                    Route::resource('posts', 'PostAPIController');
                });
            });
        });
    });
    
    Route::namespace('Client')->prefix('client')->group(function () {
    
        Route::namespace('V1')->prefix('v1')->group(function () {
    
            Route::post('users/login', 'UserAPIController@login');
            Route::post('users/refresh-token', 'UserAPIController@refreshToken');
            Route::post('users/forget-password', 'UserAPIController@forgetPassword');
            Route::post('users/register', 'UserAPIController@register');
    
            Route::resource('faqs', 'FaqAPIController');
            Route::get('settings/check-version', 'SettingAPIController@checkVersion');
    
            Route::group(['middleware' => 'auth:api'], function () {
                Route::post('users/logout', 'UserAPIController@logout');
                Route::get('users/show', 'UserAPIController@show');
                Route::put('users/notification-toggle', 'UserAPIController@toggleStatusNotification');
    
                Route::get('users/channels', 'UserTaggingAPIController@channels');
    
                /** ---------------------- ACL middleware  ---------------------- */
                Route::middleware(['acl'])->group(function () {
                    Route::get('scores/totals', 'ScoreAPIController@totals');
                    Route::resource('posts', 'PostAPIController');
                });
            });
        });
    
        Route::namespace('V2')->prefix('v2')->group(function () {
    
            Route::post('users/login', 'UserAPIController@login');
            Route::post('users/refresh-token', 'UserAPIController@refreshToken');
            Route::post('users/forget-password', 'UserAPIController@forgetPassword');
            Route::post('users/register', 'UserAPIController@register');
    
            Route::resource('faqs', 'FaqAPIController');
            Route::get('settings/check-version', 'SettingAPIController@checkVersion');
    
            Route::group(['middleware' => 'auth:api'], function () {
    
                Route::get('users/channels', 'UserTaggingAPIController@channels');
    
                /** ---------------------- ACL middleware  ---------------------- */
                Route::middleware(['acl'])->group(function () {
                    Route::resource('posts', 'PostAPIController');
                });
            });
        });
    
    });
    

    VRoute::setAvailableSubDirs([
        'admin',
        'client',
    ]);
    
    VRoute::setMiddleware('UserAPIController', 'POSTLogout', ['auth:api']);
    VRoute::setMiddleware('UserAPIController', 'GETShow', ['auth:api']);
    VRoute::setMiddleware('UserTaggingAPIController', 'PUTNotificationToggle', ['auth:api']);
    VRoute::setMiddleware('UserAPIController', 'GETChannels', ['auth:api']);
    VRoute::setMiddleware('ScoreAPIController', 'GETTotals', ['auth:api', 'acl']);
    VRoute::setMiddleware('PostAPIController', null, ['auth:api', 'acl']); //work for all versions
    
    VRoute::run(request());
    

    class UserAPIController extends AppBaseController
    {
        // some codes .....
        public function notification(): JsonResponse
        {
            //some codes
        }
    }
    

    class UserAPIController extends AppBaseController
    {
        // some codes .....
        public function PUTNotification(): JsonResponse
        {
            //some codes
        }
    }
    

use MehrdadDadkhah\VRoute;

VRoute::run(request());

VRoute::setAvailableSubDirs([
'admin',
'client',
]);

VRoute::setMiddleware('PostAPIController', null, ['web1']);

VRoute::setMiddleware('PostAPIController', null, ['web2'], 'admin');

VRoute::setMiddleware('PostAPIController', null, ['web3'], null, 'v1');

VRoute::setMiddleware('PostAPIController', null, ['web4'], 'admin', 'v1');

VRoute::setMiddleware('PostAPIController', 'GETDetail', ['web1']);

VRoute::getControllerPath(request());

VRoute::getControllerName(request());

VRoute::getAction(request());

VRoute::getNamspace(request());

VRoute::getSubDirs(request());

$request = request();

Route::get('/post', VRoute::getNamspace($request).'@'.VRoute::getAction($request))->name('post-index');