/** * Filter modules by codepool, status and vendor if such options were inputted by user * * @param InputInterface $input * @return Modules */ public function filterModules(InputInterface $input) { $filtered = $this->list; if ($input->getOption('codepool')) { $filtered = ArrayFunctions::matrixFilterByValue($filtered, "codePool", $input->getOption('codepool')); } if ($input->getOption('status')) { $filtered = ArrayFunctions::matrixFilterByValue($filtered, 'Status', $input->getOption('status')); } if ($input->getOption('vendor')) { $filtered = ArrayFunctions::matrixFilterStartswith($filtered, 'Name', $input->getOption('vendor')); } return new self($filtered); }