2.1 HelloWorld
2.1.1 Cấu hình Đường dẫn (Route)
Trong file
app/Config/routes.php, thêm cấu hình sau:
return [
...
'/helloworld' => [
'name' => 'helloworld',
'controller' => 'App\Modules\Demo\Controller\HelloController',
'action' => 'hello'
],
];
Sau khi cấu hình, khi truy cập vào
http://xxx.xxx.xxx/helloworld trong trình duyệt, phương thức
hello trong lớp
HelloController sẽ được thực thi.
2.1.2 Tạo Controller
Tạo thư mục
app/Modules/Demo/Controller/ và tạo file
HelloController.php với nội dung sau:
'World']);
}
}
2.1.3 Tạo File View
Tạo thư mục
app/Modules/Demo/Tpl/Hello/ và tạo file
hello.php với nội dung sau:
Hello = $name ?>
Khi truy cập
http://xxx.xxx.xxx/helloworld trong trình duyệt, bạn sẽ thấy "Hello World".
2.2 Chu Trình Đời Sống Của Yêu Cầu
Tất cả các yêu cầu gửi đến ứng dụng đều được xử lý bởi tệp
public/index.php. Nếu sử dụng máy chủ Apache, tệp
.htaccess trong Minor sẽ chuyển tất cả các yêu cầu đến
index.php. Đây là quá trình bắt đầu từ khi nhận yêu cầu từ khách hàng đến khi trả lời lại khách hàng.
Khi vào
index.php, trước tiên sẽ tạo một đối tượng
Minor\Framework\App thông qua các cấu hình như
$config,
$providers,
$routes, và
$events. Trong hàm khởi tạo của
App,
$config sẽ được sử dụng để khởi tạo
Minor\Config\Config để quản lý cấu hình ứng dụng,
$providers để khởi tạo
Minor\Ioc\ServiceContainer để quản lý các dịch vụ cung cấp,
$routes để tạo
Minor\Route\Router, và
$events để khởi tạo
Minor\Event\EventManager.
Sau khi khởi tạo xong
App, phương thức
handle(MinorRequest $minorRequest) sẽ được gọi để xử lý yêu cầu. Quá trình này bao gồm việc phân tích URL bằng phương thức
from($url) của
Router để xác định controller và action, sau đó thực thi phương thức của controller và cuối cùng trả về một đối tượng
MinorResponse.
Bước cuối cùng là sử dụng phương thức
send() của
MinorResponse để gửi phản hồi đến khách hàng. Đó là toàn bộ chu trình đời sống của một yêu cầu.