jacerider / neo_config_file
提供在配置中存储文件的能力。
Requires
- drupal/core: ^10.3
- jacerider/neo: ^1.0
README
- 简介
- 要求
- 安装
- 工作原理
- 注意
简介
提供在配置中存储文件的能力。
要求
此模块不依赖于Drupal核心之外的任何模块。
安装
按照您通常安装贡献的Drupal模块的方式安装。有关更多信息,请访问https://www.drupal.org/node/1897420。
添加到 .gitignore
# Neo Config File
!/config/files/*
工作原理
使用 'neo_config_file' 元素,可以将上传表单添加到 FAPI。此元素将返回 neo 配置文件实体 ID,而不是文件实体 ID。这允许始终使用正确的文件,即使文件 ID 从一个环境更改为另一个环境。
$form['file'] = [
'#type' => 'neo_config_file',
'#title' => $this->t('File'),
'#default_value' => $this->configuration['file'],
'#extensions' => ['jpg', 'jpeg', 'png', 'gif'],
'#dependencies' => [
'module' => [
'neo_style',
],
],
];
当上传文件时,将创建一个文件实体。当发生这种情况时,还将创建一个可导出的 neo 配置文件实体,该实体存储有关此文件实体的 uri 等信息。实际文件数据还临时存储在数据库中。此时,文件实体是一个临时文件。
当运行配置导出时,所有即将导出的 neo 配置文件实体都将将它们 uri 指向的文件克隆到配置目录中。在此期间,将清除任何数据库缓存数据,并将相关文件实体设置为永久。
当运行配置导入时,所有正在导入的 Neo 配置文件实体将根据需要创建文件实体,并将实际文件从配置目录克隆到公共文件目录。
如果已上传文件但未运行配置导出,我们将使用数据库缓存来重新创建文件。例如,如果远程环境上添加了新文件,并且立即从该数据库中拉取,则在这种情况下,我们具有文件实体和 neo 配置文件实体,但我们没有实际文件在配置或文件目录中。然而,文件已临时存储在数据库缓存中,当运行配置导出时,它将克隆到这两个目录中。
注意
对上传的文件没有使用跟踪,建议不要 重复使用 文件。通过 UI,当从 'neo_config_file' FAPI 元素中删除文件时,公共文件、文件实体和 neo 配置文件将被删除。配置文件将在下一次导出/导入之前持续存在。可以通过运行配置导入来恢复。