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');