protected function overrideOptions($taskName, Deployment $deployment, Node $node, Application $application, array $taskOptions)
    {
        $globalOptions = array_merge(
            $deployment->getOptions(),
            $node->getOptions(),
            $application->getOptions()
        );
        $globalTaskOptions = [];
        foreach ($globalOptions as $optionKey => $optionValue) {
            if (strlen($optionKey) > strlen($taskName) && strpos($optionKey, $taskName) === 0 && $optionKey[strlen($taskName)] === '[') {
                $globalTaskOptions[substr($optionKey, strlen($taskName) + 1, -1)] = $optionValue;
            }
        }

        return array_merge(
            $globalOptions,
            $globalTaskOptions,
            $taskOptions
        );
    }
protected function overrideOptions($taskName, Deployment $deployment, Node $node, Application $application, array $taskOptions)
    {
        $globalOptions = array_merge(
            $deployment->getOptions(),
            $node->getOptions(),
            $application->getOptions()
        );
        $globalTaskOptions = [];
        foreach ($globalOptions as $optionKey => $optionValue) {
            if (strlen($optionKey) > strlen($taskName) && strpos($optionKey, $taskName) === 0 && $optionKey[strlen($taskName)] === '[') {
                $globalTaskOptions[substr($optionKey, strlen($taskName) + 1, -1)] = $optionValue;
            }
        }

        return array_merge(
            $globalOptions,
            $globalTaskOptions,
            $taskOptions
        );
    }
protected function overrideOptions ( $ taskName , Deployment $ deployment , Node $ node , Application $ application , array $ taskOptions ) { $ globalOptions = array_merge ( $ deployment -> getOptions ( ) , $ node -> getOptions ( ) , $ application -> getOptions ( ) ) ; $ globalTaskOptions = [ ] ; foreach ( $ globalOptions as $ optionKey => $ optionValue ) { if ( strlen ( $ optionKey ) > strlen ( $ taskName ) && strpos ( $ optionKey , $ taskName ) === 0 && $ optionKey [ strlen ( $ taskName ) ] === '[' ) { $ globalTaskOptions [ substr ( $ optionKey , strlen ( $ taskName ) + 1 , - 1 ) ] = $ optionValue ; } } return array_merge ( $ globalOptions , $ globalTaskOptions , $ taskOptions ) ; }
Override options for a task

The order of the options is:

Deployment, Node, Application, Task

A task option will always override more global options from the
Deployment, Node or Application.

Global options for a task should be prefixed with the task name to prevent naming
issues between different tasks. For example passing a special option to the
GitCheckoutTask could be expressed like GitCheckoutTask::class . '[sha1]' => '1234...'.

@param string $taskName
@param \TYPO3\Surf\Domain\Model\Deployment $deployment
@param \TYPO3\Surf\Domain\Model\Node $node
@param \TYPO3\Surf\Domain\Model\Application $application
@param array $taskOptions
@return array
Override options for a task