Giới thiệu về PHP Framework Minor: Tạo Ứng Dụng Đầu Tiên và Chu Trình Đời Sống Của Yêu Cầu

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

Thẻ: php Minor Framework route Controller view

Đăng vào ngày 23 tháng 9 lúc 11:16