3 namespace Drupal\migrate\Plugin\migrate\process;
5 use Drupal\migrate\ProcessPluginBase;
8 * Provides functionality for file process plugins.
10 * Available configuration keys:
11 * - file_exists: (optional) Replace behavior when the destination file already
13 * - 'replace' - (default) Replace the existing file.
14 * - 'rename' - Append _{incrementing number} until the filename is
16 * - 'use existing' - Do nothing and return FALSE.
18 abstract class FileProcessBase extends ProcessPluginBase {
21 * Constructs a file process plugin.
23 * @param array $configuration
24 * The plugin configuration.
25 * @param string $plugin_id
27 * @param mixed $plugin_definition
28 * The plugin definition.
30 public function __construct(array $configuration, $plugin_id, array $plugin_definition) {
31 if (array_key_exists('file_exists', $configuration)) {
32 switch ($configuration['file_exists']) {
34 $configuration['file_exists'] = FILE_EXISTS_ERROR;
37 $configuration['file_exists'] = FILE_EXISTS_RENAME;
40 $configuration['file_exists'] = FILE_EXISTS_REPLACE;
43 if (array_key_exists('reuse', $configuration)) {
44 @trigger_error("Using the key 'reuse' is deprecated, use 'file_exists' => 'use existing' instead. See https://www.drupal.org/node/2981389.", E_USER_DEPRECATED);
45 if (!empty($configuration['reuse'])) {
46 $configuration['file_exists'] = FILE_EXISTS_ERROR;
49 if (array_key_exists('rename', $configuration)) {
50 @trigger_error("Using the key 'rename' is deprecated, use 'file_exists' => 'rename' instead. See https://www.drupal.org/node/2981389.", E_USER_DEPRECATED);
51 if (!empty($configuration['rename'])) {
52 $configuration['file_exists'] = FILE_EXISTS_RENAME;
55 $configuration += ['file_exists' => FILE_EXISTS_REPLACE];
56 parent::__construct($configuration, $plugin_id, $plugin_definition);