/** * Adds a trait. * * If the trait is passed as PhpTrait object, * the trait is also added as use statement. * * @param PhpTrait|string $trait trait or qualified name * @return $this */ public function addTrait($trait) { if ($trait instanceof PhpTrait) { $name = $trait->getName(); $qname = $trait->getQualifiedName(); $namespace = $trait->getNamespace(); if ($namespace != $this->getNamespace()) { $this->addUseStatement($qname); } } else { $name = $trait; } if (!in_array($name, $this->traits)) { $this->traits[] = $name; } return $this; }