Skip to content

bonefabric/taskmanager

Repository files navigation

Маршрутизация

Маршуты объявляются с помощью компонента Core\Components\Router\Router; Компонент текущего приложения получается:

/**
* 1 способ
*/
use Core\Facades\Router;

$router = Router::component();

/**
* 2 способ
*/
use Core\Application;

$router = Application::getInstance()->getComponent(\Core\Components\Router\Router::class);

Методы для регистрации:

// GET маршрут
$router->get('/path', \Core\Controllers\Api\v1\IndexController::class, 'index');

// POST маршрут
$router->post('/path', \Core\Controllers\Api\v1\IndexController::class, 'index');

// PUT маршрут
$router->put('/path', \Core\Controllers\Api\v1\IndexController::class, 'index');

// PATCH маршрут
$router->patch('/path', \Core\Controllers\Api\v1\IndexController::class, 'index');

// DELETE маршрут
$router->delete('/path', \Core\Controllers\Api\v1\IndexController::class, 'index');

// Ресурс
$router->resource('resourceName', \Core\Controllers\Api\v1\IndexController::class);
/**
* Ресурс создает автоматически маршруты
*/
$router->get('/resourceName', \Core\Controllers\Api\v1\IndexController::class, 'index');
$router->get('/resourceName/{id}', \Core\Controllers\Api\v1\IndexController::class, 'show');
$router->post('/resourceName', \Core\Controllers\Api\v1\IndexController::class, 'create');
$router->patch('/resourceName/{id}', \Core\Controllers\Api\v1\IndexController::class, 'edit');
$router->delete('/resourceName/{id}', \Core\Controllers\Api\v1\IndexController::class, 'delete');
/**
*
*/

// Группа маршрутов
$router->group($options, function() {});

// Запасной маршрут
$router->fallback(\Core\Controllers\Api\v1\IndexController::class, 'fallbackMethod);

Параметры маршрутов:

$router->get('/user/{id}/account/{name}', \Core\Controllers\Api\v1\IndexController::class, 'index', [
    'patterns' => [
        'id' => '\d+',
        'name' => '.*'
    ]
  • patterns - паттерны для проверки параметров

Параметры группы маршрутов:

// Префикс маршрутов
$router->group(['prefix' => 'api'], function() {
    
    //Маршрут GET api/path
    $router->get('/path', \Core\Controllers\Api\v1\IndexController::class, 'index');
    
});

Параметы передаются в вызываемый метод контроллера в порядке следования в маршруте.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published