/** * {@inheritdoc} */ public function render(GridViewInterface $grid, ColumnInterface $column, $data) { $types = $this->resolveTypes($column->getType()); if (!isset($this->cache[$hash = spl_object_hash($grid) . ':' . spl_object_hash($column)])) { $resolver = new OptionsResolver(); foreach ($types as $type) { $type->configureOptions($resolver); } $this->cache[$hash] = $resolver->resolve(array_merge(['column' => $column, 'grid' => $grid], $column->getOptions())); } return reset($types)->render($data, $this->cache[$hash]); }