summaryrefslogtreecommitdiff
path: root/src/Manager/ScormDisk.php
diff options
context:
space:
mode:
authordevianl2 <devianleong@gmail.com>2022-02-11 12:05:29 +0800
committerGitHub <noreply@github.com>2022-02-11 12:05:29 +0800
commit3da455045032735b1cab91a575c43fa064bc022f (patch)
treeb9bc389a9734ccc9d496353205a7d859bfa7bb48 /src/Manager/ScormDisk.php
parent9a3d5c62ac377bfcb9e31f98275636548c4d65ea (diff)
parent359e2588a4962f51c0d5cbdd2823530a15defee0 (diff)
Merge pull request #8 from devianl2/revert-7-main
Revert "Improve SCORM disk storage handler"
Diffstat (limited to 'src/Manager/ScormDisk.php')
-rw-r--r--src/Manager/ScormDisk.php74
1 files changed, 0 insertions, 74 deletions
diff --git a/src/Manager/ScormDisk.php b/src/Manager/ScormDisk.php
deleted file mode 100644
index 249f027..0000000
--- a/src/Manager/ScormDisk.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-
-namespace Peopleaps\Scorm\Manager;
-
-use Illuminate\Filesystem\FilesystemAdapter;
-use Illuminate\Support\Facades\Storage;
-use Peopleaps\Scorm\Exception\StorageNotFoundException;
-use ZipArchive;
-
-class ScormDisk
-{
- /**
- * Extract zip file into destination directory.
- *
- * @param string $path Destination directory
- * @param string $zipFilePath The path to the zip file.
- *
- * @return bool True on success, false on failure.
- */
- public function unzip($file, $path)
- {
- $path = $this->cleanPath($path);
-
- $zipArchive = new ZipArchive();
- if ($zipArchive->open($file) !== true) {
- return false;
- }
-
- /** @var FilesystemAdapter $disk */
- $disk = $this->getDisk();
-
- for ($i = 0; $i < $zipArchive->numFiles; ++$i) {
- $zipEntryName = $zipArchive->getNameIndex($i);
- $destination = $path . DIRECTORY_SEPARATOR . $this->cleanPath($zipEntryName);
- if ($this->isDirectory($zipEntryName)) {
- $disk->createDir($destination);
- continue;
- }
- $disk->putStream($destination, $zipArchive->getStream($zipEntryName));
- }
-
- return true;
- }
-
- /**
- * @param string $directory
- * @return bool
- */
- public function deleteScormFolder($folderHashedName)
- {
- return $this->getDisk()->deleteDirectory($folderHashedName);
- }
-
- private function isDirectory($zipEntryName)
- {
- return substr($zipEntryName, -1) === '/';
- }
-
- private function cleanPath($path)
- {
- return str_replace('/', DIRECTORY_SEPARATOR, $path);
- }
-
- /**
- * @return FilesystemAdapter $disk
- */
- private function getDisk()
- {
- if (!config()->has('filesystems.disks.' . config('scorm.disk'))) {
- throw new StorageNotFoundException('scorm_disk_not_define');
- }
- return Storage::disk(config('scorm.disk'));
- }
-}