public function __invoke(OutputBuffer $out) { foreach ($this->flashes->pullMessages() as $message) { $builder = new TagBuilder('div'); $builder->addClass($this->class)->addClass('kk-flash')->addClass($message->getType()); switch ($message->getType()) { case FlashMessage::ERROR: $builder->addClass($this->error); break; case FlashMessage::WARNING: $builder->addClass($this->warning); break; case FlashMessage::SUCCESS: $builder->addClass($this->success); break; case FlashMessage::INFO: $builder->addClass($this->info); break; } $old = $this->expressContext->set('flash', $message); try { $message = $this->renderNestedNodes($out->createBuffer()); $out->writeTag($builder, $message, false); } finally { $this->expressContext->set('flash', $old); } } }