/** * @param CollectableEntity $item * @return CollectableEntity * @throws Main\ArgumentTypeException */ protected function addItem(CollectableEntity $item) { $this->index++; $item->setInternalIndex($this->index); $this->collection[$this->index] = $item; /** @var Main\Entity\Event $event */ $event = new Main\Event('sale', 'OnCollectionAddItem', array('COLLECTION' => $this->collection, 'ENTITY' => $item)); $event->send(); return $item; }