function createComponent ($class, Component $parent, $props = null, array $bindings = null)
  {
    /** @var Component $component */
    $component = $this->injector->make ($class);
    /** @var DocumentContext $this */
    return $component->setup ($parent, $this, $props, $bindings);
  }
function createComponent ($class, Component $parent, $props = null, array $bindings = null)
  {
    /** @var Component $component */
    $component = $this->injector->make ($class);
    /** @var DocumentContext $this */
    return $component->setup ($parent, $this, $props, $bindings);
  }
function createComponent ( $ class , Component $ parent , $ props = null , array $ bindings = null ) { /** @var Component $component */ $ component = $ this -> injector -> make ( $ class ) ; /** @var DocumentContext $this */ return $ component -> setup ( $ parent , $ this , $ props , $ bindings ) ; }
Creates an injectable component instance of the given class.

@param string                        $class    Class name of the component to be created.
@param Component                     $parent   The component's container component (if any).
@param array|AbstractProperties|null $props    A map of property names to property values.
Properties specified via this argument come only from markup
attributes, not from subtags.
@param array|null                    $bindings A map of attribute names and corresponding databinding
expressions.
@return Component
@throws ComponentException
@throws InjectionException
@throws ReflectionPropertyException
Creates an injectable component instance of the given class .