Exemplo n.º 1
0
 private function buildSignature(PhpClass $model)
 {
     if ($model->isAbstract()) {
         $this->writer->write('abstract ');
     }
     if ($model->isFinal()) {
         $this->writer->write('final ');
     }
     $this->writer->write('class ');
     $this->writer->write($model->getName());
     if ($parentClassName = $model->getParentClassName()) {
         $this->writer->write(' extends ' . $parentClassName);
     }
     if ($model->hasInterfaces()) {
         $this->writer->write(' implements ');
         $this->writer->write(implode(', ', $model->getInterfaces()->toArray()));
     }
 }
Exemplo n.º 2
0
 public function testInterfaces()
 {
     $class = new PhpClass('my\\name\\space\\Class');
     $this->assertEquals(array(), $class->getInterfaces());
     $this->assertSame($class, $class->setInterfaces(array('foo', 'bar')));
     $this->assertEquals(array('foo', 'bar'), $class->getInterfaces());
     $this->assertSame($class, $class->addInterface('stdClass'));
     $this->assertEquals(array('foo', 'bar', 'stdClass'), $class->getInterfaces());
     $interface = new PhpInterface('my\\name\\space\\Interface');
     $class->addInterface($interface);
     $this->assertTrue($class->hasInterface('my\\name\\space\\Interface'));
     $this->assertSame($class, $class->removeInterface($interface));
     $class->addInterface(new PhpInterface('other\\name\\space\\Interface'));
     $this->assertTrue($class->hasUseStatement('other\\name\\space\\Interface'));
     $this->assertSame($class, $class->removeInterface('other\\name\\space\\Interface'));
     $this->assertTrue($class->hasUseStatement('other\\name\\space\\Interface'));
 }