public function removeItem(Item $item) { foreach ($this->items as $key => $it) { if ($it->id() == $item->id()) { unset($items[$key]); } } }
/** * Méthode permettant d'enregistrer une item. * @param $item Item la item à enregistrer * @see self::add() * @see self::modify() * @return void */ public function save(Item $item) { if ($item->isValid()) { if ($item->isNew()) { return $this->add($item); } $this->modify($item); } else { throw new \RuntimeException('L\'item doit être valide pour être enregistré'); } }
protected function modify(Item $item) { $requete = $this->dao->prepare('UPDATE items SET name = :name, slug = :slug, href = :href, minAuth = :minAuth, maxAuth = :maxAuth, itemOrder = :itemOrder, menuId = :menuId, className = :className WHERE id = :id'); $requete->bindValue(':name', ucFirst($item->name()), \PDO::PARAM_STR); $requete->bindValue(':slug', strtolower(trim(preg_replace('~[^0-9a-z]+~i', '-', html_entity_decode(preg_replace('~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|copy|th|tilde|uml);~i', '$1', htmlentities($item->name() . $item->menuId(), ENT_QUOTES, 'UTF-8')), ENT_QUOTES, 'UTF-8')), '-')), \PDO::PARAM_STR); $requete->bindValue(':href', $item->href(), \PDO::PARAM_STR); $requete->bindValue(':minAuth', $item->minAuth(), \PDO::PARAM_INT); $requete->bindValue(':maxAuth', $item->maxAuth(), \PDO::PARAM_INT); $requete->bindValue(':itemOrder', $item->itemOrder(), \PDO::PARAM_INT); $requete->bindValue(':menuId', $item->menuId(), \PDO::PARAM_INT); $requete->bindValue(':className', $item->className(), \PDO::PARAM_STR); $requete->bindValue(':id', $item->id(), \PDO::PARAM_INT); $requete->execute(); }