/** * {@inheritdoc} */ public function removeExtraKeys(Expression $expr) { $previousValues = $this->rootPackageFile->getExtraKeys(); $save = false; foreach ($this->rootPackageFile->getExtraKeys() as $key => $value) { if ($expr->evaluate($key)) { $this->rootPackageFile->removeExtraKey($key); $save = true; } } if (!$save) { return; } try { $this->packageFileStorage->saveRootPackageFile($this->rootPackageFile); } catch (Exception $e) { $this->rootPackageFile->setExtraKeys($previousValues); throw $e; } }