/** * @param Option $option * @return void */ public function saveOption($option) { $this->getDb()->query(<<<SQL \t\t UPDATE `option` \t\t SET type = :type, \t\t sort_order = :sortOrder WHERE option_id = :optionId SQL , [':sortOrder' => $option->getSortOrder(), ':type' => $option->getType()]); $this->getCache()->deleteAll('/^options\\./'); $this->getDb()->query(<<<SQL DELETE FROM option_description WHERE option_id = :optionId SQL , [':optionId' => $option->getId()]); foreach ($option->getDescriptions() as $description) { $this->getDb()->query(<<<SQL INSERT INTO option_description SET option_id = :optionId, language_id = :languageId, name = :name SQL , [':optionId' => $option->getId(), ':languageId' => $description->getLanguageId(), ':name' => $description->getName()]); } foreach ($option->getValues() as $optionValue) { $this->saveOptionValue($optionValue); } }