$this->resoudre('android'), 'ios' => $this->resoudre('ios'), ]); } /** * Détermine, pour une plateforme, le lien de téléchargement et sa disponibilité. * * @return array{version: string, url: string|null, disponible: bool} */ private function resoudre(string $plateforme): array { $config = config("mobile.{$plateforme}"); if (! is_array($config)) { $config = []; } $version = is_string($config['version'] ?? null) ? $config['version'] : '1.0.0'; $url = (is_string($config['url'] ?? null) && $config['url'] !== '') ? $config['url'] : null; $file = is_string($config['file'] ?? null) ? $config['file'] : null; // À défaut d'URL explicite, on propose le fichier précompilé s'il existe. if ($url === null && $file !== null && file_exists(public_path($file))) { $url = asset($file); } return [ 'version' => $version, 'url' => $url, 'disponible' => $url !== null, ]; } }