class Container extends Component implements IContainer

Manages a collection of child components.

Constants

private NameRegexp

Properties

T[] read-only $components

Methods

addComponent(IComponent $component, string|null $name, string|null $insertBefore = null)

Adds a child component to the container.

void
removeComponent(IComponent $component)

Removes a child component from the container.

IComponent|null
getComponent(string $name, bool $throw = true)

Retrieves a child component by name or creates it if it doesn't exist.

IComponent|null
createComponent(string $name)

Creates a new component. Delegates creation to createComponent method if it exists.

iterable
getComponents()

Returns all immediate child components.

array
getComponentTree()

Retrieves the entire hierarchy of components, including all nested child components (depth-first).

void
validateChildComponent(IComponent $child)

Validates a child component before it's added to the container.

__clone()

Handles object cloning. Clones all child components and re-sets their parents.

Container|null
_isCloning()

Is container cloning now?

Details

at line 38
IContainer addComponent(IComponent $component, string|null $name, string|null $insertBefore = null)

Adds a child component to the container.

Parameters

IComponent $component
string|null $name
string|null $insertBefore

Return Value

IContainer

Exceptions

InvalidStateException

at line 97
void removeComponent(IComponent $component)

Removes a child component from the container.

Parameters

IComponent $component

Return Value

void

at line 114
final IComponent|null getComponent(string $name, bool $throw = true)

Retrieves a child component by name or creates it if it doesn't exist.

Parameters

string $name
bool $throw

throw exception if component doesn't exist?

Return Value

IComponent|null

at line 159
protected IComponent|null createComponent(string $name)

Creates a new component. Delegates creation to createComponent method if it exists.

Parameters

string $name

Return Value

IComponent|null

at line 185
final iterable getComponents()

Returns all immediate child components.

Return Value

iterable

at line 207
final array getComponentTree()

Retrieves the entire hierarchy of components, including all nested child components (depth-first).

Return Value

array

at line 225
protected void validateChildComponent(IComponent $child)

Validates a child component before it's added to the container.

Descendant classes can override this to implement custom validation logic.

Parameters

IComponent $child

Return Value

void

Exceptions

InvalidStateException

at line 236
__clone()

Handles object cloning. Clones all child components and re-sets their parents.

at line 257
final Container|null _isCloning()

internal  
 

Is container cloning now?

Return Value

Container|null