/** * @param ICalendar &$calendar * @param callable $doesExist * @param boolean $isPublicUri */ public static function generateURI(ICalendar &$calendar, \closure $doesExist, $isPublicUri = true) { if ($isPublicUri === true) { $uri = $calendar->getPublicUri(); } else { $uri = $calendar->getPrivateUri(); } if ($uri === null) { $uri = mb_strtolower($calendar->getDisplayname()); } $uri = CalendarUtility::slugify($uri); while ($doesExist($uri)) { $newUri = self::suggestUri($uri); if ($newUri === $uri) { break; } $uri = $newUri; } if ($isPublicUri) { $calendar->setPublicUri($uri); } else { $calendar->setPrivateUri($uri); } }
/** * @param string $uri * @return $this */ public function setPrivateUri($uri) { $slugify = CalendarUtility::slugify($uri); return $this->setter('privateUri', [$slugify]); }