/** * Here we add a new nextTick function as we're in the middle of a current * nextTick. */ function testNextTickStacking() { $loop = new Loop(); $check = 0; $loop->nextTick(function () use(&$check, $loop) { $loop->nextTick(function () use(&$check) { $check++; }); $check++; }); $loop->run(); $this->assertEquals(2, $check); }
if (!$this->levels->isEmpty()) { list($lastLevel, $lastIndex) = $this->levels->peek(); $comma = ','; } $level = strlen($row[0]); if ($level == $lastLevel) { $index = $lastIndex + 1; $numClose++; } elseif ($level > $lastLevel) { $index = 1; } elseif ($level < $lastLevel) { $numClose = 1 + ($lastLevel - $level); // find where we last branched off do { list($lastLevel, $index) = $this->levels->pop(); } while ($level != $lastLevel); $index++; } $pad = str_repeat("\t", $level); echo str_repeat(')', $numClose) . $comma . "\n{$pad}{$index}, new Hash(\n{$pad}\t'contents', '" . (isset($row[1]) ? str_replace('\'', '\\\'', $row[1]) : '') . "',\n{$pad}\t'uri', '" . (isset($row[2]) ? str_replace('\'', '\\\'', $row[2]) : '') . "',\n{$pad}\t'target', '" . (isset($row[4]) ? $row[4] : '_self') . "',\n{$pad}\t'statusText', '" . (isset($row[3]) ? str_replace('\'', '\\\'', $row[3]) : '') . "'"; $this->levels->push(array($level, $index)); } function finish($total) { list($lastLevel, ) = $this->levels->peek(); $numClose = $lastLevel; echo str_repeat(')', $numClose) . "\n));"; } } Loop::run(new DataFileIterator(new DataFile('layersmenu.txt', new DataFileReader(false))), new MenuConverter('domMenu_main'));