Thành phần & cách dùng
Trang này tóm tắt các “mảnh ghép” quan trọng của DLight và cách sử dụng nhanh.
1) Routing
Router nằm ở src/Application/Router.php. Bạn thường tạo router trong file route và đăng ký bằng sign() hoặc signApi().
// Web route
$router = new DLight\Application\Router();
$router->sign('GET /', [\App\Controller\HomeController::class, 'home'])
->name('home');
Group + middleware + name
DLight\Application\Router::group('/api')
->middleware([\App\Middleware\UserAuthencation::class])
->namePrefix('api.')
->action(function () {
DLight\Application\Router::signApi('GET /users', [\App\Controller\UserController::class, 'index'])
->name('users.index');
});
Route params
$router->sign('GET /users/{id}', function ($id) {
return "User id = " . $id;
});
Named route URL
// generate URL from name
echo \DLight\Application\Router::route('home');
echo \DLight\Application\Router::route('users.show', [123]);
2) Controller
Controllers ở app/Controller. Bạn có thể return string/HTML hoặc return view.
namespace App\Controller;
class HomeController {
public function home() {
return view('home', ['message' => 'Hello']);
}
}
3) View
Views đặt ở resource/view. Engine cấu hình trong config/view.php (ví dụ repo đang set twig).
// render trực tiếp (static)
echo \DLight\Application\View::render('home', ['message' => 'Hello']);
// hoặc helper view() (được autoload trong helper files)
return view('home', ['message' => 'Hello']);
4) Session & flash
\DLight\Application\Session::start();
\DLight\Application\Session::flash('success', 'Saved!');
echo \DLight\Application\Session::getFlash('success');
5) Database layer (Builder / Mapper)
DLight có 2 kiểu thao tác DB (tuỳ DB_DESIGN): builder (query builder fluent) và mapper (CRUD theo table/model).
Model ứng dụng thường kế thừa app/Model/Model.php.
Query Builder (ví dụ)
// DLight\Application\DB::table(...), hoặc dùng Model proxy (tuỳ cấu hình)
DB::table('users')->where('id', 1)->first();
Mapper CRUD (ví dụ)
$users = new \App\Model\Users();
$all = $users->all();
$one = $users->find(1);
6) Middleware
Middleware có thể chạy trước handler; nếu trả về false thì dừng, nếu trả về giá trị khác null thì router sẽ output ngay.
// ví dụ đăng ký middleware (xem app/Router/web/web.php)
App\Middleware\UserAuthencation::sign();
7) CLI (dli)
File dli là bootstrapper cho CLI: setup report CLI và boot App::bootDli($argv).
php dli
Routes/lệnh CLI đăng ký trong app/Router/command/command.php (tuỳ dự án).
8) Helpers
DLight autoload một số helper files (xem composer.json → autoload.files), thường cung cấp các hàm như
env(), view(), route(), asset(), dump(), dd(), flash()…