drupal-8 - 新的 \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 自己的“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);
}
推荐阅读
- python - 在学习如何使用 __init__ 语句时遇到问题
- javascript - Azure 地图控件覆盖 CSS 样式
- javascript - React Sortable Tree:默认展开每个节点
- geopandas - 如何读取特定坐标格式的匀称文件或将坐标格式打包的 DMS 与十进制更改为 DMS 格式
- python - 根据条件对多个数据框列求和
- laravel - 如何使用自定义数组从 laravel 控制器向 vuejs 发送数据
- ios - 如何将 ios swift 项目分配给特定的 App Group
- html - 具有纵横比单元格以填充高度的 CSS 网格
- .net - 跳过已经存在的更改
- swift - 如何在 iOS 中使用 Game Center 的快速启动来处理已接受的多人邀请?