/**
  * @param $id
  * @param Country $country
  * @param $zoneType
  * @param $ref
  * @param $refOfficial
  * @param $name
  * @param $slug
  * @param $population
  * @param $wikipedia
  * @param \DateTime|null $dateFrom
  * @param \DateTime|null $dateUntil
  * @param $shapePolygon
  * @param $shapeMultiPolygon
  *
  * @return Zone
  */
 public function hydrateZone($id, Country $country, $zoneType, $ref, $refOfficial, $name, $slug, $population, $wikipedia, \DateTime $dateFrom = null, \DateTime $dateUntil = null, $shapePolygon, $shapeMultiPolygon) : Zone
 {
     if ($cache = $this->getFromCache('Zone', $id)) {
         return $cache;
     } else {
         $zone = new Zone();
         return $this->putInCache('Zone', $id, $zone->setId($id)->setCountry($country)->setType($zoneType)->setRef($ref)->setRefOfficial($refOfficial)->setName($name)->setSlug($slug)->setPopulation($population)->setWikipedia($wikipedia)->setDateFrom($dateFrom)->setDateUntil($dateUntil)->setShapePolygon($shapePolygon)->setShapePolygon($shapeMultiPolygon));
     }
 }