public function testRecursionLimiting() { $manager = new Manager(); // Should limit to 10 by default $manager->parseIncludes('a.b.c.d.e.f.g.h.i.j.NEVER'); $this->assertEquals(array('a', 'a.b', 'a.b.c', 'a.b.c.d', 'a.b.c.d.e', 'a.b.c.d.e.f', 'a.b.c.d.e.f.g', 'a.b.c.d.e.f.g.h', 'a.b.c.d.e.f.g.h.i', 'a.b.c.d.e.f.g.h.i.j'), $manager->getRequestedIncludes()); // Try setting to 3 and see what happens $manager->setRecursionLimit(3); $manager->parseIncludes('a.b.c.NEVER'); $this->assertEquals(array('a', 'a.b', 'a.b.c'), $manager->getRequestedIncludes()); }
/** * Getter for FractalManager instance. * * @return Manager */ public function getFractalManager() { if (!$this->_fractalManager) { $manager = new Manager(); $serializer = $this->config('serializer'); $manager->setSerializer(new $serializer($this->config('baseUrl') ?: Router::fullBaseUrl())); $manager->parseIncludes((array) $this->request->query('include')); $manager->setRecursionLimit($this->config('recursionLimit')); $this->_fractalManager = $manager; } return $this->_fractalManager; }
/** * set data transformation recursion limit * @param $limit * @return $this */ public function setRecursionLimit($limit) { $this->manager->setRecursionLimit($limit); return $this; }