Как мне заархивировать плагин Wordpress и убедиться, что он будет работать, если в целевой системе не установлен модуль ZipArchive - PullRequest
0 голосов
/ 19 сентября 2019

При разработке своего плагина я использовал ZipArchive для распаковки файла, однако, похоже, что на некоторых хостингах WordPress (например, GoDaddy) пользователь фактически должен вручную установить этот модуль ZipArchive отдельно.

Есть лиАльтернативный способ я могу сжать файл в моем плагине, не заставляя пользователя устанавливать модули через c-панель?

1 Ответ

0 голосов
/ 19 сентября 2019

Попытка установить или включить ZipArchive на сервере пользователя является недостатком безопасности.

Мы не можем гарантировать, что ZipArchive будет использоваться в любой конкретной среде, и нет никакой возможности включить эту зависимость в ваш проект.

Существует пакет с именем nelexa\zip для packigist, который не зависит от ZipArchive.Единственная зависимость PhpZip - это PHP 5.5 или выше.

Установить его просто, используя composer:

composer require nelexa/zip

Тогда это просто вопросизменения нескольких строк кода для работы с новой библиотекой вместо ZipArchive.

-        $zip = new \ZipArchive;
-        $res = $zip->open($zipFilePath);
-        $zip->extractTo($extractionPath . '/');
-        $zip->close();
-  
+        $zip = new \PhpZip\ZipFile();
+
+        $zip->openFile($zipFilePath)
+            ->extractTo($extractionPath);
+       
...