La documentation illustre comment intégrer l'adaptateur flysystem de dropbox, mais ne vous montre pas comment l'intégrer à l'adaptateur ZipArchive ou similaire.Intégration de Laravel Flysystem avec Zip Archive Adapter
https://laravel.com/docs/5.4/filesystem#custom-filesystems
https://github.com/thephpleague/flysystem-ziparchive
I essayé lecture par rapport aux procédés du FilesystemManager.php qui est la classe contenant la méthode étendre utilisé dans l'exemple de documents. J'ai trouvé une méthode appelée adapter qui semble être le ticket.
J'ai essayé d'appeler cette méthode de la façade de stockage comme ceci:
return $storage_with_zip = Storage::adapt(new \League\Flysystem\ZipArchive\ZipArchiveAdapter($file->getRealPath()));
mais je reçois cette erreur:
BadMethodCallException Call to undefined method League\Flysystem\Filesystem::adapt
Quelqu'un at-il eu du succès l'intégration de la Laravel Filesystem avec le ZipArchiveAdapter? Je sais que je peux juste utiliser le ZipArchive natif de PHP, mais j'aimerais que tout dans le système de fichiers utilise le wrapper Laravels.
Merci!
*** Mise à jour
Mon but ultime est d'être en mesure de dézipper fermetures éclair téléchargées sur le stockage/répertoire ou s3.
Exemple 1) $file = Storage::disk('local')->extractTo('unzipped/', $file);
au lieu de ceci:
$zip = new ZipArchive();
$zip->open($file->getRealPath());
$zip->extractTo(storage_path('app') . 'unzipped');
Exemple 2) $file = Storage::disk('s3')->extractTo('unzipped/', $file);
besoin d'un peu de prendre cela en, merci pour la réponse –