Go to file
Mathieu 4cb9dabd10
All checks were successful
continuous-integration/drone/push Build is passing
version
2024-03-18 13:16:15 +00:00
.devcontainer Retrait du lien de fermeture manuelle qui ne fonctionnerait pas si la page n'a pas été ouverte par script 2024-01-28 14:11:06 +00:00
.vscode formatter 2024-01-12 12:28:53 +00:00
src refactor 2024-03-18 13:15:48 +00:00
tests refactor 2024-03-18 13:15:48 +00:00
.drone.yml Initial commit 2024-01-11 10:04:42 +00:00
.gitignore add parameter file name to htmlForm() method 2024-01-28 11:25:10 +00:00
composer.json version 2024-03-18 13:16:15 +00:00
phpcs.xml Initial commit 2024-01-11 10:04:42 +00:00
phpunit.xml Initial commit 2024-01-11 10:04:42 +00:00
README.md add parameter file name to htmlForm() method 2024-01-28 11:25:10 +00:00

multi-downloader-client

Le module "multi-downloader-client" est une bibliothèque PHP conçue pour simplifier le téléchargement de fichiers depuis différentes sources en les regroupant dans un seul fichier ZIP. Il offre une interface intuitive pour ajouter des fichiers à télécharger, les renommer, et récupérer le fichier ZIP résultant, que ce soit sous forme de chaîne de caractères ou en l'enregistrant directement sur le serveur.

Installation

Ajout via Composer

Pour intégrer le "multi-downloader-client" dans votre projet, commencez par ajouter le dépôt nécessaire dans votre fichier composer.json :

{
    "repositories": [{
            "type": "composer",
            "url": "https://git.nwb.fr/api/packages/modules-communs-php/composer"
        }
    ]
}

Exécutez ensuite la commande suivante pour installer le module :

composer require nwb/multi-downloader-client:0.0.*

Configuration

Ce module utilise par défaut les variables d'environnement suivantes :

  • MULTI_DOWNLOADER_ACCESS_KEY : clé d'accès de l'API.
  • MULTI_DOWNLOADER_SECRET_KEY : clé secrète de l'API.
  • MULTI_DOWNLOADER_URL : URL du service (par défaut: https://multi-dl.kub.nwb.fr).

Ces variables peuvent être définies dans votre fichier .env ou directement dans les paramètres de votre serveur.

Pour une configuration plus spécifique, notamment pour des tests ou des cas d'usage particuliers, vous pouvez passer ces paramètres directement au constructeur :

use Nwb\MultiDownloaderClient\MultiDownloaderClient;

$client = new MultiDownloaderClient([
    'apiKey' => 'votre_api_key',
    'apiSecret' => 'votre_api_secret',
    'url' => 'url_custom'
]);

Utilisation Pratique

Ajout de Fichiers à Télécharger

$client = new MultiDownloaderClient();

$client->addFiles([
    new FileRequest('http://example.com/image.png'),
    new FileRequest('http://example.com/image1.png')
]);

Récupération du ZIP

  • Sous forme de chaîne de caractères :
    $zip = $client->downloadAsString();
    
  • Enregistrement dans un fichier :
    $client->downloadTo('/tmp/my-zip.zip');
    

Génération d'un Formulaire HTML pour le Téléchargement

Cette fonctionnalité du module "multi-downloader-client" permet de générer un formulaire HTML prêt à l'emploi pour le téléchargement des fichiers que vous avez ajoutés au client. Le formulaire généré peut être intégré dans votre page web et, une fois soumis, déclenchera le téléchargement des fichiers.

Pour utiliser cette fonctionnalité, vous appelez simplement la méthode htmlForm() sur votre objet MultiDownloaderClient. Voici comment cela se fait :

$form = $client->htmlForm();

Par défaut le nom du fichier ZIP généré sera "download.zip". Vous pouvez le personnaliser en passant un paramètre à la méthode htmlForm() :

$form = $client->htmlForm('mon-zip.zip');

Renommer les Fichiers dans le ZIP

Par défaut, les fichiers téléchargés sont nommés en fonction de leur URL. Vous pouvez cependant personnaliser le nom des fichiers dans le ZIP en utilisant la méthode name de l'objet FileOptions. Cette option peut être utile lorsque plusieurs fichiers ont le même nom ou lorsque vous souhaitez simplement renommer les fichiers pour une meilleure lisibilité.

$file = new FileRequest('http://example.com/image.png');
$file->getFileOptions()->name('nouveau_nom.png');

Fonctionnalités Avancées

  • FileRequest : Personnalisation des requêtes de fichier avec des méthodes comme url, fallbackUrl, et fileOptions.
  • MultiDownloaderClient : Gestion avancée des téléchargements avec des méthodes comme setFiles, buildRequest, et sendRequest.

Licence

Ce document et le code source qu'il décrit sont la propriété de [Nom de l'Entreprise]. Tous droits réservés. Aucune partie de ce document ou du code source ne peut être reproduite, distribuée ou transmise sous quelque forme ou par quelque moyen que ce soit, sans l'autorisation écrite préalable de l'éditeur.