*/ private array $traits = []; /** * @param TraitUse[] $traits */ public function setTraits(array $traits): static { (function (TraitUse|string ...$traits) {})(...$traits); $this->traits = []; foreach ($traits as $trait) { if (!$trait instanceof TraitUse) { trigger_error(__METHOD__ . '() accepts an array of TraitUse as parameter, string given.', E_USER_DEPRECATED); $trait = new TraitUse($trait); } $this->traits[$trait->getName()] = $trait; } return $this; } /** * @return TraitUse[] */ public function getTraits(): array { return $this->traits; } public function addTrait(string $name, array|bool|null $deprecatedParam = null): TraitUse { if (isset($this->traits[$name])) { throw new Nette\InvalidStateException("Cannot add trait '$name', because it already exists."); } $this->traits[$name] = $trait = new TraitUse($name, $this); if (is_array($deprecatedParam)) { array_map(fn($item) => $trait->addResolution($item), $deprecatedParam); } return $trait; } public function removeTrait(string $name): static { unset($this->traits[$name]); return $this; } } __halt_compiler();----SIGNATURE:----pm6qCpw7+VA9UlLU/oGicp7nsVl958nUB+Evtd9dY6P7FaSpFm1xUHQ4pfCQBOT2iSnuuJp9fpnZm6B2HyMRXSoMGgzNb9FC3IGIHK5fgIGQEYUJIxU+wqb+vPPmIyzbUsfk712yrEOfkQGa9X7gM/tcHkOEgjeNiRKWpPQhzduIwojrAABrRT9rqL8VbtV2oGmfYua0JacJkIJEHttK27tNJpfuObfgN6kMSXGFSQl42i1pGsPBTAv0yZlkoiAnlj4rReUYZGo1Mdw2niG1HVSnrFmom6uoYkyEQieK7uL+yds2BbeTMjm1Fgooq9k7YASwnTI5qQO8Zp3Ycdg+CcqqqJD2NrgU9yEkadkgFacS7j51C5hRXg6PIPzCVgUHv2aLTMOZXhhsF1DEBpCKu72QCBVqnpzHj9/UbNOxbJL5KxEOhSc2QfjPvZssak/IcV34/DFErP7oGPH+UBvIDfJ6vR9hm6lTuMrE48kB5aVmnZ3pXrdqUDCD/QDFCx76qLY3eaSHxBMkshBOIXrEFnDvTw5HrOrKZQ0ChIYogNjo0aQK+kWdfPWTdplyqyLMj5f36D1tXWjiVJKSBDPI2oyXwE0PNEydPAoPFnEQS9ZkNzZ22x7dk0TemPZg95mToGcjrSdP0W44Y5zo+IJoI7X9mm6+ArluGK2+1EH6UKE=----ATTACHMENT:----MjEyMzE3OTU0NTMyODUyMiA0MDM2MjIyMzgxOTU0ODYgOTY0MTE3MjI0NDc0MjEwMQ==