publicTrackers = $publicTrackers; } public function getFunctions(): array { return [ new TwigFunction('magnet', [$this, 'createMagnet']), ]; } public function createMagnet(string $name, string $infoHash, bool $addPublicTrackers = true): string { $magnetUrl = sprintf(self::MAGNET_TEMPLATE, urlencode($infoHash), urlencode($name)); if ($addPublicTrackers) { foreach ($this->publicTrackers as $tracker) { $magnetUrl .= '&tr='.urlencode($tracker); } } return $magnetUrl; } }