Overview

Namespaces

  • Charcoal
    • Ui
      • Dashboard
      • Form
      • FormGroup
      • FormInput
      • Layout
      • Menu
      • MenuItem
      • ServiceProvider

Classes

  • Charcoal\Ui\AbstractUiItem
  • Charcoal\Ui\Dashboard\AbstractDashboard
  • Charcoal\Ui\Dashboard\DashboardBuilder
  • Charcoal\Ui\Dashboard\DashboardConfig
  • Charcoal\Ui\Dashboard\FormInputConfig
  • Charcoal\Ui\Dashboard\GenericDashboard
  • Charcoal\Ui\Form\AbstractForm
  • Charcoal\Ui\Form\FormBuilder
  • Charcoal\Ui\Form\FormConfig
  • Charcoal\Ui\Form\GenericForm
  • Charcoal\Ui\FormGroup\AbstractFormGroup
  • Charcoal\Ui\FormGroup\FormGroupConfig
  • Charcoal\Ui\FormGroup\GenericFormGroup
  • Charcoal\Ui\FormInput\AbstractFormInput
  • Charcoal\Ui\FormInput\FormInputBuilder
  • Charcoal\Ui\FormInput\GenericFormInput
  • Charcoal\Ui\Layout\AbstractLayout
  • Charcoal\Ui\Layout\GenericLayout
  • Charcoal\Ui\Layout\LayoutBuilder
  • Charcoal\Ui\Layout\LayoutConfig
  • Charcoal\Ui\Layout\LayoutFactory
  • Charcoal\Ui\Menu\AbstractMenu
  • Charcoal\Ui\Menu\GenericMenu
  • Charcoal\Ui\Menu\MenuBuilder
  • Charcoal\Ui\Menu\MenuConfig
  • Charcoal\Ui\Menu\MenuFactory
  • Charcoal\Ui\MenuItem\AbstractMenuItem
  • Charcoal\Ui\MenuItem\GenericMenuItem
  • Charcoal\Ui\MenuItem\MenuItemBuilder
  • Charcoal\Ui\MenuItem\MenuItemConfig
  • Charcoal\Ui\MenuItem\MenuItemFactory
  • Charcoal\Ui\ServiceProvider\DashboardServiceProvider
  • Charcoal\Ui\ServiceProvider\FormServiceProvider
  • Charcoal\Ui\ServiceProvider\LayoutServiceProvider
  • Charcoal\Ui\ServiceProvider\MenuServiceProvider
  • Charcoal\Ui\ServiceProvider\UiServiceProvider
  • Charcoal\Ui\UiItemConfig

Interfaces

  • Charcoal\Ui\Dashboard\DashboardInterface
  • Charcoal\Ui\Form\FormInterface
  • Charcoal\Ui\FormGroup\FormGroupInterface
  • Charcoal\Ui\FormInput\FormInputInterface
  • Charcoal\Ui\Layout\LayoutAwareInterface
  • Charcoal\Ui\Layout\LayoutInterface
  • Charcoal\Ui\Menu\MenuInterface
  • Charcoal\Ui\MenuItem\MenuItemInterface
  • Charcoal\Ui\UiGroupingInterface
  • Charcoal\Ui\UiItemInterface

Traits

  • Charcoal\Ui\Dashboard\DashboardTrait
  • Charcoal\Ui\Form\FormTrait
  • Charcoal\Ui\FormGroup\FormGroupTrait
  • Charcoal\Ui\Layout\LayoutAwareTrait
  • Charcoal\Ui\Layout\LayoutTrait
  • Charcoal\Ui\UiGroupingTrait
  • Charcoal\Ui\UiItemTrait
  • Overview
  • Namespace
  • Class
 1: <?php
 2: 
 3: namespace Charcoal\Ui\MenuItem;
 4: 
 5: use \Pimple\Container;
 6: 
 7: use \Charcoal\Factory\FactoryInterface;
 8: 
 9: /**
10:  * Menu Item Builder
11:  */
12: class MenuItemBuilder
13: {
14:     /**
15:      * The default, concrete, menu item model.
16:      *
17:      * @const string
18:      */
19:     const DEFAULT_TYPE = 'charcoal/ui/menu-item/generic';
20: 
21:     /**
22:      * Store the menu item factory instance.
23:      *
24:      * @var FactoryInterface
25:      */
26:     protected $factory;
27: 
28:     /**
29:      * Store the dependency-injection container to fulfill the required services.
30:      *
31:      * @var Container $container
32:      */
33:     protected $container;
34: 
35:     /**
36:      * Return a new menu item builder.
37:      *
38:      * @param FactoryInterface $factory   A menu item factory.
39:      * @param Container        $container The DI container.
40:      */
41:     public function __construct(FactoryInterface $factory, Container $container)
42:     {
43:         $this->factory   = $factory;
44:         $this->container = $container;
45:     }
46: 
47:     /**
48:      * Build and return a new menu item.
49:      *
50:      * @param  array|\ArrayAccess $options The menu item build options.
51:      * @return MenuItemInterface
52:      */
53:     public function build($options)
54:     {
55:         $container = $this->container;
56:         $objType = isset($options['type']) ? $options['type'] : self::DEFAULT_TYPE;
57: 
58:         $obj = $this->factory->create($objType, [
59:             'menu'              => $options['menu'],
60:             'logger'            => $container['logger'],
61:             'view'              => $container['view'],
62:             'menu_item_builder' => $container['menu/item/builder'],
63:             'container'         => $container
64:         ]);
65:         $obj->setData($options);
66: 
67:         return $obj;
68:     }
69: }
70: 
API documentation generated by ApiGen