новое расширение ZipArchive не работает в модуле Drupal

#drupal-8 #ziparchive

#drupal-8 #ziparchive

Вопрос:

Ошибка: класс ‘Drupalchecklist_download Controller ZipArchive’ не найден в Drupalchecklist_download Controller ChDownloadController->page() (строка 42 из modules/checklist_download/src/Controller/ChDownloadController.php ).

установлено расширение zip, простой php-файл в домене работает, но не в модуле

 $zip = new ZipArchive;

$zip->open($archive_name ,ZipArchive::CREATE|ZipArchive::OVERWRITE);

       
foreach ($b as $filename => $file) {

$zip->addFile($filename, $file);

}

$zip->close();
 

Ответ №1:

Для этого вы можете использовать собственный «ArchiverManager» Drupals: https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Archiver!ArchiverManager.php/8.3.x

 //Set path to zip-file or create empty Zip-file:
$zip_path =Drupal::service('file_system')->saveData('','temporary://'.$zip_name.'.zip');
$zip = Drupal::service('plugin.manager.archiver')->getInstance(['filepath' => $zip_path]);

foreach ($b as $filename => $filePath) {
  $zip->add($filePath);
}