public function saveIfNotExists($routeName)
 {
     $route = $this->findOneByRoute($routeName);
     if ($route) {
         return $route;
     }
     $route = new Route();
     $route->setRoute($routeName);
     $this->save($route);
     return $route;
 }
 public function routeName(Route $route)
 {
     if ($route->getName()) {
         return sprintf('%s (%s)', $route->getName(), $route->getRoute());
     }
     $routeName = str_replace(['_', '.'], ' ', $route->getRoute());
     $words = explode(' ', $routeName);
     foreach ($words as $key => $word) {
         $words[$key] = ucfirst($word);
     }
     return sprintf('%s (%s)', implode(' ', $words), $route->getRoute());
 }
 /**
  * @param Route $route
  * @param $parameter
  * @return RouteParameter
  * @throws \Doctrine\ORM\NonUniqueResultException
  */
 public function findOneByRouteAndParameter(Route $route, $parameter)
 {
     $builder = $this->getQueryBuilder()->andWhere('r.id = :routeId')->setParameter('routeId', $route->getId())->andWhere('p.parameter = :parameter')->setParameter('parameter', $parameter);
     $query = $builder->getQuery();
     return $query->getOneOrNullResult();
 }