function testPHPDumper() { $routes1 = new Roller\RouteSet(); $routes2 = new Roller\RouteSet(); $routes1->add('/item', function () { return 'item'; }); $routes2->add('/subitem', function () { return 'subitem'; }); $routes1->mount('/item', $routes2); $dumper = new Roller\Dumper\PhpDumper(); $code = $dumper->dump($routes1); $cRoutes = eval($code); $router = new Roller\Router($cRoutes); $r = $router->dispatch('/item'); is('item', $r()); $r = $router->dispatch('/item/subitem'); is('subitem', $r()); }
private function makeCache() { if ($this->cache === self::cache_type_apc) { $dumper = new \Roller\Dumper\PhpDumper(); $code = $dumper->dump($this->routes); apc_store($this->cacheId, $code) === true or die('Roller\\Router: apc cache failed.'); } elseif ($this->cache === self::cache_type_file) { $dumper = new \Roller\Dumper\PhpDumper(); $code = $dumper->dump($this->routes); $cacheFile = $this->cacheDir . DIRECTORY_SEPARATOR . $this->cacheId; file_put_contents($cacheFile, '<?php ' . $code) !== false or die('Roller\\Router: file cache failed.'); } else { throw new Exception('Unknown cache type'); } }