헬퍼


menu 페키지는 객체지향 방식으로 개발이 되어 있습니다. 메뉴의 인스턴스는 레지스트리에 자동으로 등록이 됩니다. 메뉴의 데이터 파일을 직접 읽어서 처리를 하실 수도 있지만, 메뉴 페키지는 메뉴의 데이터를 처리할 수 있는 헬퍼 함수를 제공합니다.

헬퍼 함수는 메뉴 페키지를 호출하고, 메뉴 데이터값을 쉽게 가지고 올 수 있도록 간단한 파사드를 제공합니다.

헬퍼 위치


메뉴의 헬퍼 함수는 메뉴 페지지의 Helpers폴더안에 존재합니다. 정확한 위치는 vendor/jiny/menu/src/Helpers/Helper.php입니다.

헬퍼함수


헬퍼는 함수로 선언되어 있습니다. 함수를 선언할때는 기존의 함수 이름들과 충돌이 발생할 수 있습니다. function_exists()를 통하여 중복을 확인합니다.

메뉴 초기화

헬퍼함수의 첫번째 역활은 menu에 대한 인스턴스를 생성하는 것입니다. 인스턴스는 레지스트리에 등록을 하게 됩니다.

if (! function_exists('menu_init')) {
    /**
     * 메뉴의 초기화: 객체를 생성합니다.
     */
    function menu_init() {
        return Registry::create(\Jiny\Menu\Menu::class,"Menu");
    }
}

menu_init()은 메뉴 페키지의 인스턴스를 반환합니다. 메뉴 객체에 접근이 필요한 경우에는 이 함수를 사용하시면 됩니다.

메뉴 데이터

지정값이 없으면 사이트 설정값의 메뉴리소스로 데이터를 읽어 오게 됩니다.

if (! function_exists('menu')) {
    /**
     * 메뉴의 객체를 생성후, 데이터를 읽어옵니다.
     */
    function menu($uri=null) {
        $Menu = menu_init();
        return $Menu->getTree($uri);
    }
}

메뉴의 데이터값을 읽어오는 getTree() 메소드를 실행하여 반환을 합니다.