/** * Compiler constructor. * @param Definition[] $definitions * @param string $className * @param BuilderFactory|null $builderFactory */ public function __construct(array $definitions, $className, BuilderFactory $builderFactory = null) { $this->definitions = $definitions; list($this->namespace, $this->class) = Utils::extractNamespace($className); $this->builderFactory = $builderFactory ?: new BuilderFactory(); $this->astCache = new ArrayObject(); }
public function testExtractNamespace() { $this->assertSame(array(null, \stdClass::class), Utils::extractNamespace(\stdClass::class)); $this->assertSame(array('Foo', 'Bar'), Utils::extractNamespace('Foo\\Bar')); }