# packeta/trunk/deps/nette/component-model/src/ComponentModel/IContainer.php

Packeta, version trunk. 36 lines.

- Page: https://pluginprobe.com/plugins/packeta/trunk/code/deps/nette/component-model/src/ComponentModel/IContainer.php
- Raw: https://pluginprobe.com/plugins/packeta/trunk/raw/deps/nette/component-model/src/ComponentModel/IContainer.php
- Modified: 2025-03-10T10:47:38+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/packeta/trunk/code/deps/nette/component-model/src/ComponentModel/IContainer.php#L10-L20`.

```php
<?php

/**
 * This file is part of the Nette Framework (https://nette.org)
 * Copyright (c) 2004 David Grudl (https://davidgrudl.com)
 */
declare (strict_types=1);
namespace Packetery\Nette\ComponentModel;

use Packetery\Nette;
/**
 * Containers are objects that logically contain zero or more IComponent components.
 */
interface IContainer extends IComponent
{
    /**
     * Adds the component to the container.
     * @return static
     */
    function addComponent(IComponent $component, ?string $name);
    /**
     * Removes the component from the container.
     */
    function removeComponent(IComponent $component) : void;
    /**
     * Returns component specified by name or path.
     * @throws \Packetery\Nette\InvalidArgumentException  if component doesn't exist
     */
    function getComponent(string $name) : ?IComponent;
    /**
     * Iterates over descendants components.
     * @return \Iterator<int|string,IComponent>
     */
    function getComponents() : \Iterator;
}

```
