public function testNoEarlyInstantiatingWhenExtending() { $counter = 0; $counter2 = 0; $oldInstance = null; $newInstance = null; $this->container->set('item', function () use(&$counter, &$oldInstance) { $counter++; $oldInstance = new \stdClass(); return $oldInstance; }); $this->assertEquals(0, $counter); $this->container->extend('item', function ($item) use(&$counter2, &$newInstance) { $counter2++; $newInstance = new \stdClass(); return $newInstance; }); $this->assertEquals(0, $counter); $this->assertEquals(0, $counter2); $this->assertEquals(null, $oldInstance); $this->assertEquals(null, $newInstance); self::assertTrue($this->container->get('item') !== null); self::assertTrue($this->container->get('item') === $newInstance); self::assertTrue($newInstance !== $oldInstance); $this->assertEquals(1, $counter); $this->assertEquals(1, $counter2); }
public function register(ServiceContainer $container) { /** registers path to grid views */ $container->extend(ServiceId::TEMPLATE_FINDER, function (TemplateFinder $finder) { $finder->registerPath(dirname(__DIR__) . '/resources/views'); return $finder; }); }