pastebin

Paste Search Dynamic
Recent pastes
Container createInstance
  1. <?php
  2.  
  3. /**
  4.  * Test: NetteDIContainerBuilder and Container: createInstance()
  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. class Test
  20. {
  21.         public $container;
  22.  
  23.         function __construct(stdClass $obj, DIContainer $container)
  24.         {
  25.                 $this->container = $container;
  26.         }
  27.  
  28.         function method(stdClass $obj, DIContainer $container)
  29.         {
  30.                 return isset($obj->prop);
  31.         }
  32.  
  33. }
  34.  
  35.  
  36.  
  37. $builder = new DIContainerBuilder;
  38. $builder->addDefinition('one')
  39.         ->setClass('stdClass');
  40.  
  41.  
  42. // run-time
  43. $code = (string) $builder->generateClass();
  44. file_put_contents(TEMP_DIR . '/code.php', "<?phpn$code");
  45. require TEMP_DIR . '/code.php';
  46.  
  47. $container = new Container;
  48.  
  49. $test = $container->createInstance('Test');
  50. assert::true( $test instanceof Test );
  51. assert::same( $container, $test->container );
  52. assert::same( false, $container->callMethod(array($test, 'method')) );
  53. assert::same( true, $container->callMethod(array($test, 'method'), array((object) array('prop' => true))) );
Parsed in 0.059 seconds