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;
     });
 }