Basic Routing di NexaUI Framework

Pengenalan Routing

Routing adalah mekanisme yang menghubungkan URL dengan controller dan action yang akan menangani request. NexaUI menyediakan sistem routing yang fleksibel dan mudah digunakan untuk menentukan bagaimana aplikasi merespons request client.

File Routing

Konfigurasi routing di NexaUI didefinisikan dalam file routes/web.php untuk web routes dan routes/api.php untuk API routes. Berikut contoh file routing dasar:

// routes/web.php
$router->add('/', 'FrontendController@index');
$router->add('/home', 'FrontendController@index');
$router->add('/about', 'Frontend/AboutController@index');
$router->add('/blog', 'Frontend/BlogController@index');
$router->add('/signin', 'OauthController@signin');
$router->add('/signup', 'OauthController@signup');
$router->add('/logout', 'OauthController@logout');

Mendefinisikan Route

Route dasar di NexaUI didefinisikan dengan menggunakan method add() dari Router instance. Format dasarnya adalah:

$router->add('path', 'ControllerName@methodName');

Dimana:

  • path adalah URL path yang akan dicocokkan
  • ControllerName adalah nama controller yang akan menangani request
  • methodName adalah nama method dalam controller yang akan dipanggil

Jika controller berada dalam subdirektori, gunakan format Subdirectory/ControllerName:

$router->add('/admin/users', 'Admin/UserController@index');

HTTP Methods

Selain method add() yang menerima semua jenis HTTP request, NexaUI juga menyediakan method khusus untuk HTTP verb tertentu:

// GET request
$router->get('/users', 'UserController@index');

// POST request
$router->post('/users', 'UserController@store');

// PUT request
$router->put('/users/{id}', 'UserController@update');

// DELETE request
$router->delete('/users/{id}', 'UserController@destroy');

Menggunakan method spesifik ini membantu membatasi route agar hanya merespons jenis request tertentu, sesuai dengan prinsip RESTful API.

Root Route dan Default Routes

Route untuk URL root (homepage) didefinisikan dengan path '/':

$router->add('/', 'FrontendController@index');

Anda juga dapat mendefinisikan route default yang akan digunakan jika tidak ada route lain yang cocok:

// Default route (404 handler)
$router->setDefault('ErrorController@notFound');

Contoh Implementasi

Berikut adalah contoh implementasi routing lengkap untuk aplikasi web sederhana:

// routes/web.php

// Home routes
$router->add('/', 'FrontendController@index');
$router->add('/home', 'FrontendController@index');

// Auth routes
$router->add('/signin', 'OauthController@signin');
$router->add('/signup', 'OauthController@signup');
$router->add('/logout', 'OauthController@logout');

// Content routes
$router->add('/about', 'Frontend/AboutController@index');
$router->add('/blog', 'Frontend/BlogController@index');
$router->add('/blog/{slug}', 'Frontend/BlogController@show');

// Documentation routes
$router->add('/docs', 'Docs/indexController@index');
$router->add('/docs/{params}', 'Docs/indexController@index');

// Admin routes
$router->add('/admin', 'AdminController@index');
$router->add('/admin/users', 'Admin/UserController@index');
$router->add('/admin/settings', 'Admin/SettingController@index');