本文整理汇总了PHP中PHPCR\SessionInterface::getNodesByIdentifier方法的典型用法代码示例。如果您正苦于以下问题:PHP SessionInterface::getNodesByIdentifier方法的具体用法?PHP SessionInterface::getNodesByIdentifier怎么用?PHP SessionInterface::getNodesByIdentifier使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PHPCR\SessionInterface
的用法示例。
在下文中一共展示了SessionInterface::getNodesByIdentifier方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: findMany
/**
* 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);
}
示例2: findMany
/**
* {@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);
}
示例3: findMany
/**
* 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);
}
示例4: __construct
/**
* @param array $uuids
*/
public function __construct(SessionInterface $session, $uuids)
{
$this->session = $session;
$this->uuids = $uuids;
$this->cachedNodesByUuid = $this->session->getNodesByIdentifier($this->uuids);
}