for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Modulatr\Loader\Menu;
/**
* Class MenuItem
*
* @package Modulatr\Loader\Menu
*/
class MenuItem
{
* @var string
private $url;
private $text;
private $subMenu = [];
* @var bool
private $separator = false;
* LinkItem constructor.
* @param string $text
* @param string $url
public function __construct(string $text = '', string $url = '#')
$this->text = $text;
$this->url = $url;
}
* @return static
public static function build(string $text = '', string $url = '#'): self
return new static($text, $url);
* Create a separator Menu Item
* @return MenuItem
public static function separator(): self
$item = new static();
$item->setSeparator();
return $item;
* Set if the item is a separator
public function setSeparator()
$this->separator = true;
* @return bool
public function isSeparator(): bool
return $this->separator;
* @return string
public function getUrl(): string
return $this->url;
public function getText(): string
return $this->text;
* @param MenuItem $menuItem
public function addSubMenuItem(MenuItem $menuItem): self
$this->subMenu[] = $menuItem;
return $this;
public function hasSubMenu(): bool
return !empty($this->subMenu);
* @return MenuItem[]
public function getSubMenu(): array
return $this->subMenu;