pastebin

Paste Search Dynamic
Recent pastes
ContainerBuilder findByTag
  1. <?php
  2.  
  3. /**
  4.  * Test: NetteDIContainerBuilder and Container: findByTag()
  5.  *
  6.  * @author     David Grudl
  7.  * @package    NetteDI
  8.  * @subpackage UnitTests
  9.  */
  10.  
  11. use NetteDI;
  12.  
  13.  
  14.  
  15. require __DIR__ . '/../bootstrap.php';
  16.  
  17.  
  18.  
  19. $builder = new DIContainerBuilder;
  20. $builder->addDefinition('one')
  21.         ->setClass('stdClass');
  22. $builder->addDefinition('two')
  23.         ->setClass('stdClass')
  24.         ->addTag('debugPanel', true);
  25.  
  26. $builder->addDefinition('five')
  27.         ->setClass('stdClass')
  28.         ->addTag('debugPanel', array(1, 2, 3))
  29.         ->addTag('typeHint', 'Service');
  30.  
  31.  
  32. // compile-time
  33. assert::same( array(
  34.         'five' => 'Service',
  35. ), $builder->findByTag('typeHint') );
  36.  
  37. assert::same( array(
  38.         'two' => true,
  39.         'five' => array(1, 2, 3),
  40. ), $builder->findByTag('debugPanel') );
  41.  
  42. assert::same( array(), $builder->findByTag('unknown') );
  43.  
  44.  
  45.  
  46. // run-time
  47. $code = (string) $builder->generateClass();
  48. file_put_contents(TEMP_DIR . '/code.php', "<?phpn$code");
  49. require TEMP_DIR . '/code.php';
  50.  
  51. $container = new Container;
  52.  
  53. assert::same( array(
  54.         'five' => 'Service',
  55. ), $container->findByTag('typeHint') );
  56.  
  57. assert::same( array(
  58.         'two' => true,
  59.         'five' => array(1, 2, 3),
  60. ), $container->findByTag('debugPanel') );
  61.  
  62. assert::same( array(), $container->findByTag('unknown') );
Parsed in 0.102 seconds