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.
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');
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 dicocokkanControllerName
adalah nama controller yang akan menangani requestmethodName
adalah nama method dalam controller yang akan dipanggil
Jika controller berada dalam subdirektori, gunakan format Subdirectory/ControllerName
:
$router->add('/admin/users', 'Admin/UserController@index');
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.
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');
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');