PHP code example of devamirul / p-router

1. Go to this page and download the library: Download devamirul/p-router 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/ */

    

devamirul / p-router example snippets


$router->get('/', function () {
    echo 'welcome to p-route';
})->name('home');

$router->get('/', [WelcomeController::class, 'index'])->name('home');

$router->get('/users/:id', function(){
    //
})->where(['id' => '^\d+$'])->name('user');

$router->get('/users/:id', function(){
    //
})->middleware('auth')->where(['id' => '^\d+$'])->name('user');

$router->get($uri, $callback);
$router->post($uri, $callback);
$router->put($uri, $callback);
$router->patch($uri, $callback);
$router->delete($uri, $callback);
$router->match($uri, $callback);
$router->any($uri, $callback);


/**
 * Define root directory.
 */
define('APP_ROOT', dirname(__FILE__));

/**
 * Require composer autoloader.
 */
eeting', function () {
    return 'Hello World';
});

// Resolve and run application.
$router->run();



// Define routes
$router->get('/greeting', function () {
    return 'Hello World';
});

$router->fallback(function () {
    return 'Fallback route';
});


/**
 * Require composer autoloader.
 */
er = Devamirul\PRouter\Router::singleton();

// Require route.php

use App\Controllers\WelcomeController;

$router->get('/', [WelcomeController::class, 'index'])->name('home');

// Right way.
$router->get('/greeting', function () {
    return 'Hello World';
});

// wrong way.
$router->get('/greeting', function () {
    echo 'Hello World';
});

$router->get('/', [WelcomeController::class, 'index'], false)->name('home');

$router->get('/user/profile', function () {
    // ...
})->name('profile');

return toRoute('profile');

$router->get('/user/:id/profile', function () {
    // ...
})->name('profile');

return toRoute('profile', ['id' => 1]);

$router->get('/user/:id/profile', function () {
    // ...
})->name('profile');

return toRoute('profile', ['id' => 1, 'photos' => 'yes']);

$router->get('/user/:id', function (Request $request) {
    return 'User ' . $request->getParam('id');
});

$router->get('/posts/:post/comments/:comment', function (Request $request) {
    //Get all parameters array.
    return 'User ' . $request->getParam();

    //Get specific parameter.
    return 'User ' . $request->getParam('post');
});

$router->get('/user/:id', function (Request $request) {
    return 'User ' . $request->getParam('id');
});

$router->get('/user/:id', [UserController::class, 'index']);

namespace App\Http\Controllers;

use Devamirul\PhpMicro\core\Foundation\Application\Request\Request;
use Devamirul\PhpMicro\core\Foundation\Controller\BaseController;

class UserController extends BaseController {
    public function index(Request $request) {
        return 'User ' . $request->getParam('id');
    }
}

$router->get('/user/:name?', function () {
    //
});

$router->get('/user/:id', function () {
    // ...
})->where(['id' => '^\d+$']);

$router->get('/user/:name?', function () {
    //
})->where(['name' => '^[a-zA-Z ]*$']);

$router->get('/profile/:id/user/:name?', function () {
    //
})->where(['id' => '^\d+$', 'name' => '^[a-zA-Z ]*$']);

$router->match(['get', 'post'], '/', function () {
    // ...
});

$router->any('/', function () {
    // ...
});

$router->get('admin/*', function () {
    // ...
});

$router->redirect('/here', '/there');

namespace App\Middlewares;

use Devamirul\PRouter\Interfaces\Middleware;
use Devamirul\PRouter\Request\Request;

class AuthMiddleware implements Middleware {
    /**
     * Handle an incoming request.
     */
    public function handle(Request $request): void {
        //
    }
}

public function handle(Request $request): void {
    if (!isset($_SESSION['user'])) {
        redirect('/login');
    }
    return;
}

'middleware' => [
    'csrf' => Devamirul\PRouter\Middleware\Middlewares\CsrfMiddleware::class,
    'auth' => App\Middlewares\AuthMiddleware::class
],

Router::get('/users/:id', function(){
    //
})->middleware('auth');

Router::put('/users/:id', function(){
    //
})->middleware(['auth','csrf']);

'get'        => [],
'post'       => [ 'csrf' ],
'put'        => [ 'csrf' ],
'patch'      => [ 'csrf' ],
'delete'     => [ 'csrf', 'auth' ],

<form method="POST" action="/profile">
    <?=setCsrf()

namespace App\Controllers;

use Devamirul\PRouter\Request\Request;
use Devamirul\PRouter\Controller\BaseController;

class UserController extends BaseController {
    /**
     * Show user.
     */
    public function show(Request $request) {
        return 'user name -' . $request->input('name');
    }
}

// Get all input data.
request()->all();

// Get all input data.
request()->input();

// Get input data specified by key, return default data if key not found.
request()->input('name', 'default');

// Get input data specified by key.
request()->only('name', 'email');

// Get path.
request()->path();

// Get all query.
request()->query();

// Get query data specified by key.
request()->query('name');

// Get current method.
request()->method();

// Get all input data.
request()->all();

// Get dynamic params.
request()->getParam();

// Get specific param.
request()->getParam('id');

$router->get('/', function () {
    

<body>
    <h1>Home Page</h1>
</body>

$router->get('/', function (Request $request) {
    $name = 'Amirul islam';

    

<body>
    <h1>Welcome Mr <?= $name 

<form action="/login" method="POST" class="mt-5">

    <?=setCsrf()

<form>
    <?=setMethod('delete')

config('app', 'timezone');

dd([1,2,3]);

dump();

setCsrf();

<form>
    <?=setCsrf()

isCsrfValid();

setMethod();

<form>
    <?=setMethod('delete')

request();

request()->input();

return redirect('/redirect-link');

return toRoute('users');
bash
composer dump-autoload