Nxdom Framework

Nusantara eXtreme Development Object Model — dokumentasi resmi

Events & injection

Setelah Models (useModels) dan Storages (NexaModel + Storage()), lanjut ke injection antar controller, domain events, dan middleware.

refParams · useParams · useModels · NexaEvent

Storages useModels() refParams / useParams NexaEvent

Alur baca backend

DashboardEvents & injection (halaman ini) → Models.

Dari Storages ke topik ini

Di Storages, data diakses lewat model dan useModels('Model', 'method', [args]). Halaman ini menjelaskan cara yang sama untuk orkestrasi lebih luas: memanggil controller lain (refParams, useParams), lalu memisahkan efek samping dengan event dan melindungi rute dengan middleware.

Controller & model injection

Mendapatkan instance controller lain atau memanggil method di model/controller tanpa menyusun dependensi secara manual di setiap kelas.

refParams() — referensi controller (Admin)

Mengambil instance controller di namespace App\Controllers\Admin:

$orderController = $this->refParams('Product/Order'); $keranjang = $this->refParams('Product/Order')->cart(); $DriveManager = $this->refParams()->Manager()->Drive();

Path Product/Order mengarah ke kelas seperti Controllers\Frontend\Product\Order.

useModels() — panggilan method model

Sama seperti di Models: useModels('ModelPath', 'methodName', [$args]) memanggil Model::methodName(...$params) pada App\Models (termasuk subfolder, mis. 'Role/Package').

useParams() — panggilan method controller lain

Memanggil method pada controller Admin lain dan mengembalikan hasilnya:

$data = $this->useParams('Access/General', 'data', [$params]); $this->useParams('Access/General', 'sendOrder', [$params, $label, $this->getPost()]);
Method Fungsi Namespace
refParams('Path') Instance controller lain App\Controllers\Admin
useModels('Model', 'method', [$args]) Panggil method model App\Models
useParams('Path', 'method', [$args]) Panggil method controller lain App\Controllers\Admin

Events & listeners

Domain events untuk decoupling: dispatch event, lalu listener menjalankan logika terkait.

  • system/Events/NexaDomainEvent.php
  • system/Events/NexaEventDispatcher.php
  • system/Events/Listeners/NexaUserEventListeners.php
  • system/Helpers/NexaEvent.php

Middleware (route)

File: system/NexaMiddleware.php. Middleware dapat didaftarkan ke nama (mis. auth) lalu dilampirkan ke route:

$router->middleware('auth', function() { // … cek sesi, redirect jika perlu … return true; }); $router->add('/dashboard', 'AdminController@index', ['auth']);

Lanjut

Storages — API reference · daftar dokumentasi · Distribusi