You are here

MenuLinkNormalizer.php in Menu Normalizer 2.x

Same filename and directory in other branches
  1. 8 src/Normalizer/MenuLinkNormalizer.php

File

src/Normalizer/MenuLinkNormalizer.php
View source
<?php

namespace Drupal\menu_normalizer\Normalizer;

use Drupal\serialization\Normalizer\NormalizerBase;

/**
 * MenuLinkTreeElement Normalizer.
 */
class MenuLinkNormalizer extends NormalizerBase {

  /**
   * Supported Interface or Class.
   *
   * @var string
   */
  protected $supportedInterfaceOrClass = 'Drupal\\Core\\Menu\\MenuLinkInterface';

  /**
   * {@inheritdoc}
   */
  public function normalize($object, $format = NULL, array $context = []) {
    return [
      'weight' => $object
        ->getWeight(),
      'title' => $object
        ->getTitle(),
      'description' => $object
        ->getDescription(),
      'menu_name' => $object
        ->getMenuName(),
      'provider' => $object
        ->getProvider(),
      'parent' => $object
        ->getParent(),
      'enabled' => $object
        ->isEnabled(),
      'expanded' => $object
        ->isExpanded(),
      'resettable' => $object
        ->isResettable(),
      'translatable' => $object
        ->isTranslatable(),
      'deletable' => $object
        ->isDeletable(),
      'route_name' => $object
        ->getRouteName(),
      'route_parameters' => $object
        ->getRouteParameters(),
      'url' => $object
        ->getUrlObject()
        ->toString(),
      'options' => $object
        ->getOptions(),
      'meta_data' => $this->serializer
        ->normalize($object
        ->getMetaData(), $format, $context),
      'delete_route' => $object
        ->getDeleteRoute(),
      'edit_route' => $object
        ->getEditRoute(),
    ];
  }

}

Classes

Namesort descending Description
MenuLinkNormalizer MenuLinkTreeElement Normalizer.