App\Providers\MenuServiceProvider::boot PHP Method

boot() public method

Service Provider Boot
public boot ( Illuminate\Contracts\Auth\Access\Gate $gate ) : void
$gate Illuminate\Contracts\Auth\Access\Gate
return void
    public function boot(GateContract $gate)
    {
        $pluginRegister = $this->app['xe.pluginRegister'];
        $pluginRegister->add(MenuType::class);
        $pluginRegister->add(MenuSelect::class);
        $pluginRegister->add(TypeSelect::class);
        $pluginRegister->add(DirectLink::class);
        foreach ($this->policies as $class => $policy) {
            $gate->policy($class, $policy);
        }
        // 메뉴아이템의 링크를 편하게 제공하기 위한 resolver 등록
        MenuItem::setLinkResolver(function (MenuItem $item) {
            $title = xe_trans($item->getAttributeValue('title'));
            if ($item->getRelationValue('basicImage')) {
                if ($item->isSelected()) {
                    $image = $item->getSelectedImage();
                } else {
                    $image = $item->basicImage;
                }
                $hoverImage = $item->getHoverImage();
                return sprintf('<img src="%s" class="__xe_menu_image" data-hover="%s" alt="%s"/>', $image, $hoverImage, $title);
            }
            return $title;
        });
    }
MenuServiceProvider