/**
  * @param array          $entities
  * @param PaginationData $paginationData
  * @param array          $additionalData
  *
  * @return Closure
  */
 public function getPagination(array $entities, PaginationData $paginationData, array $additionalData = null)
 {
     if (is_null($entities)) {
         $entities = array();
     }
     if (is_null($additionalData)) {
         $additionalData = array();
     }
     $pagination = new Pagination($entities, $paginationData->getTotalItemsCount());
     $pagination->setCurrentPage($paginationData->getPageIndex());
     $pagination->setPageRange($paginationData->getPageRange());
     $pagination->setPageSize($paginationData->getPageSize());
     $twig_env = $this->twig;
     $twig_template = $this->template;
     $pagination->renderer = function ($data) use($twig_env, $twig_template, $additionalData) {
         //return var_export($data, true);
         // common errors to check: is $twig_template file present?
         //return $twig_template;
         try {
             return $twig_env->render($twig_template, array_merge($data, $additionalData));
         } catch (\Exception $e) {
             return $e->getMessage();
         }
     };
     return $pagination;
 }