首页 > 解决方案 > 新的 \ZipArchive 扩展在 Drupal 模块中不起作用

问题描述

错误:在 Drupal\checklist_download\Controller\ChDownloadController->page() 中找不到类“Drupal\checklist_download\Controller\ZipArchive”(模块/checklist_download/src/Controller/ChDownloadController.php 的第 42 行)。

已安装 zip 扩展在域上工作的简单 php 文件,但不在模块中

$zip = new \ZipArchive;

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

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

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

}

$zip->close();

标签: drupal-8ziparchive

解决方案


您可以为此使用 Drupal 自己的“ArchiverManager”: https ://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Archiver%21ArchiverManager.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);
}

推荐阅读