private static function flattenByBlock(Ticket $ticket, array &$flattened) { if (!isset($flattened[$ticket->getId()])) { $flattened[$ticket->getId()] = $ticket; foreach ($ticket->getBlocking() as $blocking) { self::flattenByBlock($blocking, $flattened); } foreach ($ticket->getBlockedBy() as $blockedBy) { self::flattenByBlock($blockedBy, $flattened); } } }
protected function populateDependencies(Model\Ticket $ticket = null, array &$populated = array()) { if ($ticket) { if (!isset($populated[$ticket->getId()])) { $populated[$ticket->getId()] = true; $blocking = array(); foreach ($ticket->getBlocking() as $id) { if (is_scalar($id) && !empty($id)) { $blocking[] = $this->getPopulatedDependenciesById($id, $populated); } } $ticket->setBlocking($blocking); $blockedBy = array(); foreach ($ticket->getBlockedBy() as $id) { if (is_scalar($id) && !empty($id)) { $blockedBy[] = $this->getPopulatedDependenciesById($id, $populated); } } $ticket->setBlockedBy($blockedBy); } } }
/** * Update a ticket from TicketUpdate data * * @param \CleverAge\Orchestrator\Ticketing\Model\Ticket $ticket * @param \CleverAge\Orchestrator\Ticketing\Model\TicketUpdate $update * @return \CleverAge\Orchestrator\Ticketing\Model\Ticket */ public function updateTicket(Model\Ticket $ticket, Model\TicketUpdate $update) { return $this->getResource('doUpdateTicket', func_get_args(), array('cache_key' => 'ticket_' . $ticket->getId(), 'cache_lifetime' => $this->cacheLifetime['ticket'], 'cache_no_get' => true)); }