/** * @see \PHPCR\SessionInterface::getNodes */ public function getNodes($absPaths = null) { $nodes = $this->session->getNodes($absPaths); foreach ($nodes as $name => $node) { $nodes[$name] = new Node($node); } return $nodes; }
/** * {@inheritDoc} */ public function findMany($className, array $ids) { $uuids = array(); foreach ($ids as $key => $id) { if (UUIDHelper::isUUID($id)) { $uuids[$id] = $key; } elseif (strpos($id, '/') !== 0) { $ids[$key] = '/' . $id; } } if (!empty($uuids)) { $nodes = $this->session->getNodesByIdentifier(array_keys($uuids)); foreach ($nodes as $node) { /** @var $node \PHPCR\NodeInterface */ $id = $node->getPath(); $ids[$uuids[$node->getIdentifier()]] = $id; unset($uuids[$id]); } if (!empty($uuids)) { // skip not found ids $ids = array_diff($ids, array_keys($uuids)); } } $nodes = $this->session->getNodes($ids); $hints = array('fallback' => true); $documents = $this->unitOfWork->getOrCreateDocuments($className, $nodes, $hints); return new ArrayCollection($documents); }
/** * Finds many documents by id. * * @param null|string $className * @param array $ids * @return object */ public function findMany($className, array $ids) { $documents = array(); if (UUIDHelper::isUUID(reset($ids))) { $nodes = $this->session->getNodesByIdentifier($ids); } else { foreach ($ids as $key => $id) { $document = $this->unitOfWork->getDocumentById($id); if ($document) { try { $this->unitOfWork->validateClassName($document, $className); $documents[$id] = $document; unset($ids[$key]); } catch (\InvalidArgumentException $e) { // ignore on class mismatch } } } $nodes = $this->session->getNodes($ids); } foreach ($nodes as $node) { $documents[$node->getPath()] = $this->unitOfWork->createDocument($className, $node); } return new ArrayCollection($documents); }
/** * Finds many documents by id. * * @param null|string $className * @param array $ids * @return object */ public function findMany($className, array $ids) { $nodes = UUIDHelper::isUUID(reset($ids)) ? $this->session->getNodesByIdentifier($ids) : $this->session->getNodes($ids); $documents = array(); foreach ($nodes as $node) { $documents[$node->getPath()] = $this->unitOfWork->createDocument($className, $node); } return new ArrayCollection($documents); }
/** * {@inheritDoc} */ public function getTranslationsForNodes($nodes, $locales, SessionInterface $session) { $absolutePaths = array(); foreach ($locales as $locale) { foreach ($nodes as $node) { $absolutePaths[] = $node->getPath() . '/' . Translation::LOCALE_NAMESPACE . ':' . $locale; } } return $session->getNodes($absolutePaths); }