0 follower

Final Class Yiisoft\Yii\DataView\GridView\Column\Base\RendererContainer

InheritanceYiisoft\Yii\DataView\GridView\Column\Base\RendererContainer

RendererContainer manages the creation and configuration of column renderers.

Method Details

Hide inherited methods

__construct() public method

public mixed __construct ( \Psr\Container\ContainerInterface $container )
$container \Psr\Container\ContainerInterface

The dependency injection container for creating renderers.

                public function __construct(ContainerInterface $container)
{
    $this->injector = new Injector($container);
}

            
addConfigs() public method

Add configuration settings for column renderers.

This method allows configuring multiple renderer classes at once. For each class, you can provide constructor arguments either by name or position.

public self addConfigs ( array $configs )
$configs array

Configuration settings for renderers. Keys are renderer class names, values are arrays of constructor arguments.

return self

New instance with updated configurations.

                public function addConfigs(array $configs): self
{
    $new = clone $this;
    foreach ($configs as $class => $config) {
        $new->configs[$class] = isset($new->configs[$class])
            ? array_merge($new->configs[$class], $config)
            : $config;
        unset($new->cache[$class]);
    }
    return $new;
}

            
get() public method

Get a configured instance of a column renderer.

If the renderer instance is not in cache, it will be created using the dependency injector and configured with settings provided via {@see \Yiisoft\Yii\DataView\GridView\Column\Base\addConfigs()}.

public Yiisoft\Yii\DataView\GridView\Column\ColumnRendererInterface get ( string $class )
$class string

The class name of the renderer to instantiate.

return Yiisoft\Yii\DataView\GridView\Column\ColumnRendererInterface

The configured renderer instance.

                public function get(string $class): ColumnRendererInterface
{
    if (!isset($this->cache[$class])) {
        $this->cache[$class] = $this->injector->make($class, $this->configs[$class] ?? []);
    }
    return $this->cache[$class];
}