/**
  * Returns template.
  *
  * @return string
  */
 private function findTemplate()
 {
     if ($this->templateName !== null && $this->templateEngine->exists($this->templateName)) {
         return $this->templateName;
     }
     return 'TwigBundle:Exception:exception_full.html.twig';
 }
 /**
  * @param GetResponseForControllerResultEvent $event
  */
 public function onKernelView(GetResponseForControllerResultEvent $event)
 {
     $request = $event->getRequest();
     $attributes = $request->attributes;
     $result = $event->getControllerResult();
     if (!is_array($this->controller) || !is_array($result)) {
         return;
     }
     $view = $attributes->get($this->viewAttribute, null, true);
     if (is_array($view)) {
         $action = basename($this->controller[1], 'Action');
         if (array_key_exists($action, $view)) {
             $view = $view[$action];
         } elseif (!empty($view['_default'])) {
             $view = $view['_default'];
         }
     }
     if ((empty($view) || !is_string($view)) && $this->autoGuess) {
         $view = $this->guessViewName();
     }
     if (!$this->engine->exists($view)) {
         return;
     }
     if ($view) {
         $event->setResponse($this->engine->renderResponse($view, $result));
     }
 }
 /**
  * @param EngineInterface $templating
  * @param string          $format
  * @param integer         $code       An HTTP response status code
  * @param Boolean         $debug
  *
  * @return TemplateReference
  */
 protected function findTemplate($templating, $format, $code, $debug)
 {
     $name = $debug ? 'exception' : 'error';
     if ($debug && 'html' == $format) {
         $name = 'exception_full';
     }
     // when not in debug, try to find a template for the specific HTTP status code and format
     if (!$debug) {
         $template = new TemplateReference('TwigBundle', 'Exception', $name . $code, $format, 'twig');
         if ($templating->exists($template)) {
             return $template;
         }
     }
     // try to find a template for the given format
     $template = new TemplateReference('TwigBundle', 'Exception', $name, $format, 'twig');
     if ($templating->exists($template)) {
         return $template;
     }
     // default to a generic HTML exception
     $this->container->get('request')->setRequestFormat('html');
     return new TemplateReference('TwigBundle', 'Exception', $name, 'html', 'twig');
 }
 /**
  * @param string $name
  *
  * @return boolean
  */
 public function templateExists($name)
 {
     return $this->templating->exists($name);
 }
 /**
  * @param ExportableInterface $adminList
  *
  * @return \PHPExcel_Writer_Excel2007
  *
  * @throws \Exception
  * @throws \PHPExcel_Exception
  */
 public function createExcelSheet(ExportableInterface $adminList)
 {
     $objPHPExcel = new \PHPExcel();
     $objWorksheet = $objPHPExcel->getActiveSheet();
     $number = 1;
     $row = array();
     foreach ($adminList->getExportColumns() as $column) {
         $row[] = $column->getHeader();
     }
     $objWorksheet->fromArray($row, null, 'A' . $number++);
     $iterator = $adminList->getIterator();
     foreach ($iterator as $item) {
         if (array_key_exists(0, $item)) {
             $itemObject = $item[0];
         } else {
             $itemObject = $item;
         }
         $row = array();
         foreach ($adminList->getExportColumns() as $column) {
             $data = $adminList->getStringValue($itemObject, $column->getName());
             if (is_object($data)) {
                 if (!$this->renderer->exists($column->getTemplate())) {
                     throw new \Exception('No export template defined for ' . get_class($data));
                 }
                 $data = $this->renderer->render($column->getTemplate(), array('object' => $data));
             }
             $row[] = $data;
         }
         $objWorksheet->fromArray($row, null, 'A' . $number++);
     }
     $objWriter = new \PHPExcel_Writer_Excel2007($objPHPExcel);
     return $objWriter;
 }
 /**
  * @param ExportableInterface $adminList
  *
  * @return Response
  *
  * @throws \Exception
  */
 public function streamExcelSheet(ExportableInterface $adminList)
 {
     $response = new StreamedResponse();
     $response->setCallback(function () use($adminList) {
         $writer = WriterFactory::create(Type::XLSX);
         $writer->openToBrowser("export.xlsx");
         $row = array();
         foreach ($adminList->getExportColumns() as $column) {
             $row[] = $this->translator->trans($column->getHeader());
         }
         $writer->addRow($row);
         $iterator = $adminList->getIterator();
         $rows = array();
         foreach ($iterator as $item) {
             if (array_key_exists(0, $item)) {
                 $itemObject = $item[0];
             } else {
                 $itemObject = $item;
             }
             $row = array();
             foreach ($adminList->getExportColumns() as $column) {
                 $data = $adminList->getStringValue($itemObject, $column->getName());
                 if (is_object($data)) {
                     if (!$this->renderer->exists($column->getTemplate())) {
                         throw new \Exception('No export template defined for ' . get_class($data));
                     }
                     $data = $this->renderer->render($column->getTemplate(), array('object' => $data));
                 }
                 $row[] = $data;
             }
             $rows[] = $row;
         }
         $writer->addRows($rows);
         $writer->close();
     });
     return $response;
 }