protected function registerBlockBladeDirective()
    {
        Blade::directive('block', function ($expression) {
            $expression = $this->sanitizeExpression($expression);

            list($module, $component) = explode('::', $expression);

            if (view()->exists("$module::blocks.$component")) {
                return "<?php echo \$__env->make('$module::blocks.$component', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>";
            }
        });
    }