NexaMapping adalah sistem perutean berbasis konvensi yang kompatibel dengan NexaDom Framework v2.0 dan Device Layout System. Sistem ini menyediakan penemuan metode dan perutean otomatis berdasarkan segmen URL.
Dokumentasi ini menjelaskan cara kerja sistem perutean NexaMapping dan bagaimana menggunakannya dalam aplikasi Anda.
Berikut adalah metode-metode utama yang tersedia dalam NexaMapping:
Merutekan permintaan berdasarkan segmen jalur URL. Ini adalah metode inti dari sistem perutean NexaMapping.
Mendefinisikan pemetaan kustom action-ke-metode. Memberikan kontrol penuh atas definisi perutean.
Secara otomatis menemukan metode dengan akhiran tertentu dan membuat pemetaan untuk mereka.
Memproses parameter dari NexaRouter dan memetakannya ke metode controller.
Selain dokumentasi metode NexaMapping, Anda juga dapat mempelajari konsep dasar perutean:
Pelajari dasar-dasar perutean di NexaDom Framework.
Cara menangkap dan menggunakan parameter dalam rute.
Menggunakan rute bernama untuk referensi yang lebih mudah.
Mengelompokkan rute untuk pengaturan yang lebih baik.
Menggunakan middleware untuk memfilter permintaan HTTP.
class ProductController extends NexaController
{
use NexaMappingTrait;
protected function init(): void
{
// Definisikan pemetaan kustom
$this->addResourceMappings([
'list' => 'listProducts',
'detail' => 'showProductDetail',
'add' => 'addProduct',
'edit' => 'editProduct',
'delete' => 'deleteProduct'
]);
}
public function index()
{
// Coba tangani perutean berdasarkan segmen URL
if (!$this->handleResourceRouting()) {
// Perilaku index default
$this->render('product/index.html');
}
}
// Metode controller...
}
class ApiController extends NexaController
{
use NexaMappingTrait;
protected function init(): void
{
// Temukan semua metode yang berakhiran dengan "Endpoint"
$this->autoDiscoverResourceMethods('Endpoint');
}
// Metode ini akan dipetakan ke /api/users
public function usersEndpoint($params)
{
// Implementasi endpoint
}
// Metode ini akan dipetakan ke /api/products
public function productsEndpoint($params)
{
// Implementasi endpoint
}
}