public function evaluateAsArray()
{
$collection = $this->getCollection();
$result = [];
if ($collection === null) {
return $result;
}
$this->numberOfRenderedNodes = 0;
$itemName = $this->getItemName();
if ($itemName === null) {
throw new Exception('The Collection needs an itemName to be set.', 1344325771);
}
$itemKey = $this->getItemKey();
$iterationName = $this->getIterationName();
$collectionTotalCount = count($collection);
foreach ($collection as $collectionKey => $collectionElement) {
$context = $this->tsRuntime->getCurrentContext();
$context[$itemName] = $collectionElement;
if ($itemKey !== null) {
$context[$itemKey] = $collectionKey;
}
if ($iterationName !== null) {
$context[$iterationName] = $this->prepareIterationInformation($collectionTotalCount);
}
$this->tsRuntime->pushContextArray($context);
$result[] = $this->tsRuntime->render($this->path . '/itemRenderer');
$this->tsRuntime->popContext();
$this->numberOfRenderedNodes++;
}
return $result;
}