# responsive-menu/3.0.17/src/app/ViewModels/Components/Menu/Menu.php

Responsive Menu – Create Mobile-Friendly Menu, version 3.0.17. 36 lines.

- Page: https://pluginprobe.com/plugins/responsive-menu/3.0.17/code/src/app/ViewModels/Components/Menu/Menu.php
- Raw: https://pluginprobe.com/plugins/responsive-menu/3.0.17/raw/src/app/ViewModels/Components/Menu/Menu.php
- Modified: 2016-08-27T00:57:36+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/responsive-menu/3.0.17/code/src/app/ViewModels/Components/Menu/Menu.php#L10-L20`.

```php
<?php

namespace ResponsiveMenu\ViewModels\Components\Menu;
use ResponsiveMenu\ViewModels\Components\ViewComponent;
use ResponsiveMenu\Collections\OptionsCollection;
use ResponsiveMenu\Walkers\WpWalker;
use ResponsiveMenu\Translation\Translator;

class Menu implements ViewComponent {

  public function __construct(Translator $translator) {
    $this->translator = $translator;
  }

  public function render(OptionsCollection $options) {

    $menu = $this->translator->translate($options['menu_to_use']);
    $walker = $options['custom_walker']->getValue();

    return wp_nav_menu(
      [
        'container' => '',
        'menu_id' => 'responsive-menu',
        'menu_class' => null,
        'menu' => $menu && !$options['theme_location_menu']->getValue() ? $menu : null,
        'depth' => $options['menu_depth']->getValue() ? $options['menu_depth']->getValue() : 0,
        'theme_location' => $options['theme_location_menu']->getValue() ? $options['theme_location_menu']->getValue() : null,
        'walker' => $walker ? new $walker($options) : new WpWalker($options),
        'echo' => false
      ]
    );

  }

}

```
