Mezon 라우터의 사용자 지정 유형

안녕!

Mezon Router의 마지막 업데이트 중 하나 이후로 URL 파서에 대해 고유한 유형을 정의할 수 있습니다. date 타입을 만들어 봅시다.

우선 간단한 클래스를 만들어야 합니다.

class DateRouterType
{

    /**
     * Method returns regexp for searching this entity in the URL
     *
     * @return string regexp for searching
     */
    public static function searchRegExp(): string
    {
        return '(\[date:'.BaseType::PARAMETER_NAME_REGEXP.'\])';
    }
}


여기서 BaseType::PARAMETER_NAME_REGEXP는 매개변수 이름이 다음으로 구성되어야 함을 라우터에 알리는 전역 설정입니다.
  • a-z 및 A-Z 문자
  • 0-9
  • 및 기호 _ 및 -

  • 이제 날짜가 발생할 경우 구문 분석할 클래스 메서드를 하나 더 정의해야 합니다.

    public static function parserRegExp(): string
    {
        // pretty simple regexp
        return '([0-9]{4}-[0-9]{2}-[0-9]{2})';
    }
    


    그리고 설정 파일의 어딘가에서 이 유형을 켜야 합니다.

    $router->addType('date', DateRouterType::class);
    


    이제 다음과 같은 경로를 처리할 수 있습니다.

    /some-url-part/2020-02-02/ending-part/
    /posts-for-2020-02-02/
    


    하지만 조심하세요. 예를 들어 다음과 같은 경로를 정의합니다.

    $router->addRoute('/posts-for-[date:posts-date]/', function(UserObject $userObject){
        // some activities here
    });
    
    $router->addRoute('/[s:some-url/', function(UserObject $userObject){
        // some activities here
    });
    


    그런 다음 첫 번째 핸들러/posts-for-[date:posts-date]/가 경로/posts-for-2020-02-02/에 대해 호출됩니다.

    더 알아보기



    더 많은 정보는 여기에서 찾을 수 있습니다:

    Mezon Framework

    당신이 이 프로젝트에 뭔가 기여한다면 좋을 것입니다. 문서화, 소셜 미디어에서 프로젝트 공유, 버그 수정, 리팩토링 또는 질문 또는 기능 요청으로 문제 제출. 어쨌든 감사합니다)

    좋은 웹페이지 즐겨찾기