*/ private iterable $renders, ) { $this->defaultRender = new ChillEntityRender(); } public function renderBox($entity, array $options = []): string { if (null === $entity) { return ''; } return $this->getRender($entity, $options) ->renderBox($entity, $options); } public function renderString($entity, array $options = []): string { if (null === $entity) { return ''; } return $this->getRender($entity, $options) ->renderString($entity, $options); } private function getRender($entity, $options): ChillEntityRenderInterface { foreach ($this->renders as $render) { if ($render->supports($entity, $options)) { return $render; } } return $this->defaultRender; } }