Entrypoints

Estimated reading: 3 minutes 140 views

Hướng dẫn sử dụng entrypoint

Lời mở đầu

Trước đây, khi muốn tạo entrypoint, ta sẽ tạo một file xử lý và khai báo đường dẫn trong entry point registry. Điều này làm mất nhiều thao tác, chưa kể nếu xử lý phức tạp sẽ dẫn đến code rườm rà, không thể tái sử dụng. Thêm vào đó, mỗi entrypoint khai báo là một thế giới riêng, không đồng nhất cấu trúc, kiểu dữ liệu trả về dẫn đến khó kiểm soát, sửa lỗi.


Chính vì thế, hai coder giấu tên đã nảy ra ý tưởng để tối ưu hóa những khuyết điểm trên. Một người cho ý tưởng xử lý entrypoint qua class với mục đích dễ kiểm soát, dễ tái sử dụng, dễ bảo trì và nâng cấp. Mỗi method đóng vai trò là một action, parameters của method đó sẽ là body request. Người còn lại phụ trách gom tất cả các entrypoint về một entrypoint duy nhất. Cấu trúc chúng thành một Entrypoint Factory (tìm hiểu thêm về Design Patterns – Factory) để dễ xử lý.

Và vì vậy, nếu cần dùng đến entrypoint để xử lý ajax, send HTTP request, các bạn chỉ cần làm như sau:


    Tạo entrypoint class

    Vào đường dẫn custom/entrypoints/entrypoints_class tạo class với cú pháp sau

    ep<ClassName>Class.php

    Nội dung bên trong class:

    <?php
    class ep<ClassName>Class extends epClass {
        public function __construct($request) {
            $this->request = $request;
        }
    }

    Trong đó thuộc tính request là giá trị body request khi send HTTP request
    Bạn không cần phải quan tâm giá trị này ở đâu. Coder giấu tên đã làm cho bạn

    Mỗi method trong class sẽ là action bạn muốn thực hiện với params tương ứng

    <?php
    class ep<ClassName>Class extends epClass {
        public function __construct($request) {
            $this->request = $request;
        }
    
        public function <methodName>($<param 1>, $<param 2>) {
            // Code here
        }
    }

    Tất cả method đóng vai trò là action đều phải trả về JSON string.

    Lưu ý: Chỗ nào màu đỏ các bạn tự điền nhé, màu đen copy paste là được.

    Vậy là xong, tới bước tiếp theo.

    Call đến entrypoint

    Endpoint (URL)index.php?entryPoint=epGeneral
    MethodPOST, GET
    Body request (POST)
    URL Params (GET)
    class: <ClassName>
    method: <methodName>
    params: [
    <param 1> : value_1
    <param 2> : value_2
    ]
    Content typemultipart/form-data
    application/x-www-form-urlencoded
    application/json
    ReturnJSON string

    CONTENTS