name = $name; $this->isJSOnly = $isJSOnly; $this->components = []; } /** * @return string */ public function getName() { return $this->name; } /** * Gets whether the entry should only be shown if JavaScript is disabled * in the client. * * @return bool */ public function isJSOnly() { return $this->isJSOnly; } /** * @return array */ public function getComponents() { return $this->components; } /** * Add a link to the entry. * * An entry can have zero or more links. * * @param string $label * @param string $url * @param string $className Any additional CSS classes that should added to the output, * separated by spaces * @param array $attrs Additional data that can be associated with the component * * @return MenuEntry */ public function addComponent( $label, $url, $className = '', $attrs = [] ) { $this->components[] = [ 'text' => $label, 'href' => $url, 'class' => $className, ] + $attrs; return $this; } }