Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
Latest
------

### Changes
* [cleverage/process-bundle#143](https://github.com/cleverage/process-bundle/issues/143) ZipTask and UnzipTask: `getOptions()` returns an `array` (it was `?array`), and the options are no longer read on initialization (they depend on the input, and are resolved on every execution). Compatible with cleverage/process-bundle v6.0, where `AbstractConfigurableTask::getOptions()` returns an `array`: allow `cleverage/process-bundle` `^6.0`.

v2.2
------

Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
"require": {
"php": ">=8.2",
"ext-zip": "*",
"cleverage/process-bundle": "^5.0",
"cleverage/process-bundle": "^5.0 || ^6.0",
"symfony/config": "^6.4|^7.4|^8",
"symfony/dependency-injection": "^6.4|^7.4|^8",
"symfony/finder": "^6.4|^7.4|^8",
Expand Down
26 changes: 17 additions & 9 deletions src/Task/UnzipTask.php
Original file line number Diff line number Diff line change
Expand Up @@ -72,19 +72,27 @@ protected function configureOptions(OptionsResolver $resolver): void
}

/**
* @return array{filename: string, destination: string}|null
* The options depend on the input: they are resolved on every execution, not on initialization.
*/
#[\Override]
protected function getOptions(ProcessState $state): ?array
public function initialize(ProcessState $state): void
{
}

/**
* @return array{filename: string, destination: string}
*/
#[\Override]
protected function getOptions(ProcessState $state): array
{
// The options depend on the input: resolve them on every execution
if (\is_array($state->getInput())) {
$resolver = new OptionsResolver();
$this->configureOptions($resolver);
$this->options = $resolver->resolve(array_merge($state->getContextualizedOptions() ?? [], $state->getInput()));
}
$input = $state->getInput();
$resolver = new OptionsResolver();
$this->configureOptions($resolver);
/** @var array{filename: string, destination: string} $options */
$options = $resolver->resolve(array_merge((array) $state->getContextualizedOptions(), \is_array($input) ? $input : []));
$this->options = $options;

// @phpstan-ignore return.type
return $this->options;
return $options;
}
}
26 changes: 17 additions & 9 deletions src/Task/ZipTask.php
Original file line number Diff line number Diff line change
Expand Up @@ -90,19 +90,27 @@ protected function configureOptions(OptionsResolver $resolver): void
}

/**
* @return array{filename: string, files: array<string>|string, files_base_path: string}|null
* The options depend on the input: they are resolved on every execution, not on initialization.
*/
#[\Override]
protected function getOptions(ProcessState $state): ?array
public function initialize(ProcessState $state): void
{
}

/**
* @return array{filename: string, files: array<string>|string, files_base_path: string}
*/
#[\Override]
protected function getOptions(ProcessState $state): array
{
// The options depend on the input: resolve them on every execution
if (\is_array($state->getInput())) {
$resolver = new OptionsResolver();
$this->configureOptions($resolver);
$this->options = $resolver->resolve(array_merge($state->getContextualizedOptions() ?? [], $state->getInput()));
}
$input = $state->getInput();
$resolver = new OptionsResolver();
$this->configureOptions($resolver);
/** @var array{filename: string, files: array<string>|string, files_base_path: string} $options */
$options = $resolver->resolve(array_merge((array) $state->getContextualizedOptions(), \is_array($input) ? $input : []));
$this->options = $options;

// @phpstan-ignore return.type
return $this->options;
return $options;
}
}
Loading