Site

Rotas

Rotas conectam URLs aos handlers. Na v4, use a facade uri (minúsculo).

ℹ️Em poucas palavras

uri::get('/caminho', [handler::class, 'metodo'])->name('nome') — depois use to('nome') nas views.


Onde registrar

ArquivoEscopo
routes/web.phpSite público
routes/user.phpÁrea logada
routes/admin.phpPainel admin
routes/api.phpAPI REST
app/modules/*/routes.phpMódulo (auto-descoberto)

Métodos HTTP

use MUCRM\engine\support\facades\uri;

uri::get('/', [home_handler::class, 'index'])->name('home');
uri::get('/profile/{id:int}', [profile_handler::class, 'show'])->name('user.profile.show');
uri::post('/settings/update', [settings_handler::class, 'update'])->name('user.settings.update');
uri::patch('/profile/active', [profile_handler::class, 'active'])->name('user.profile.active');
uri::delete('/account', [user_handler::class, 'destroy'])->name('user.account.delete');

Grupos

uri::group(['prefix' => 'user', 'middleware' => ['user']], function () {
    uri::get('/panel', [panel_handler::class, 'index'])->name('user.panel');
    uri::get('/settings', [settings_handler::class, 'index'])->name('user.settings');
});

Mais detalhes em Grupos de Rotas.


URLs nomeadas — to()

// PHP na view:
<a href="<?= to('user.panel') ?>">Painel</a>
<a href="<?= to('user.profile.show', ['id' => $user->id]) ?>">Perfil</a>

<form method="POST" action="<?= to('user.settings.update') ?>">
    <?= csrf() ?>
    <?= method('PUT') ?>
    <button type="submit">Salvar</button>
</form>

CSRF e webhooks

POST/PUT/PATCH/DELETE exigem token CSRF. Webhooks usam without_csrf():

uri::post('/webhook/payment', [webhook_handler::class, 'handle'])
    ->name('webhooks.payment')
    ->without_csrf();

Falha CSRF → HTTP 419. Veja CSRF.


Erros de rota

404Nenhuma rota casou
405Método HTTP não permitido
419CSRF inválido