Dokumentasi Perutean NexaMapping

Dokumentasi Perutean NexaMapping

Pengenalan

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.

Metode Utama

Berikut adalah metode-metode utama yang tersedia dalam NexaMapping:

handleRouting()

Merutekan permintaan berdasarkan segmen jalur URL. Ini adalah metode inti dari sistem perutean NexaMapping.

addMethodMappings()

Mendefinisikan pemetaan kustom action-ke-metode. Memberikan kontrol penuh atas definisi perutean.

autoDiscoverMethods()

Secara otomatis menemukan metode dengan akhiran tertentu dan membuat pemetaan untuk mereka.

handleDirectParamsCall()

Memproses parameter dari NexaRouter dan memetakannya ke metode controller.

Panduan Dasar Perutean

Selain dokumentasi metode NexaMapping, Anda juga dapat mempelajari konsep dasar perutean:

Perutean Dasar

Pelajari dasar-dasar perutean di NexaDom Framework.

Parameter Rute

Cara menangkap dan menggunakan parameter dalam rute.

Rute Bernama

Menggunakan rute bernama untuk referensi yang lebih mudah.

Grup Rute

Mengelompokkan rute untuk pengaturan yang lebih baik.

Middleware

Menggunakan middleware untuk memfilter permintaan HTTP.

Contoh Penggunaan

Penggunaan Dasar NexaMapping

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...
}

Menggunakan Penemuan Otomatis

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
    }
}