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
| Arquivo | Escopo |
|---|---|
routes/web.php | Site público |
routes/user.php | Área logada |
routes/admin.php | Painel admin |
routes/api.php | API REST |
app/modules/*/routes.php | Mó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
| 404 | Nenhuma rota casou |
| 405 | Método HTTP não permitido |
| 419 | CSRF inválido |