*/ 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:----f+e2wqsr5AYNr2SqwWXiwamRiLL3Xngk7ecIl5QYLs5MTiN5UcPcEecV/KNAiqvw7L1K9wWDJdxqBXX7AnIQDdAi+O0UhkEukuS84JPFwq7UQvnbIsb6PGk7DKLsMGw3rSLlGXPi8mk+N5Yihv335G9dcBJIVqh3nC+U5nW/gqmdY8A1DW+MdZ2QG94iPabd2/QVKvOMX140ki9nrd0SUPoAy7aGuQ/pc0Q17ucksdFv/FApATRLwZk1er8l6/Ewbivw6g/SuziJjgkTfZTN7LOOq+daKTuQJuJAFsCqwxa+sFHNUxmlfaMLtsLvWn6sbXfZcxRXCS/iWPesudhHl4MFb/7sHB+RbfnXDcWUOrW6d5xO5jNYJVZMQl6KouUD/zWJn71VsmI9S0xigtR2CDCxyjwmXY9QNpbqH6pJXIn4XSgxbwzbNqgI2sRz2ZHoNYDShgW0qa0BNsI7tM9UolwTqhx8vj6XVEq0oMAvEjkmjn3bVPe8W+IZqL5wjCtpmq4YlU9rykcpuo1V/B5TyRIrJZ3aaJTN5YJxznCO02lhI2ekEjw2148VkRYH+B5+qTVvn/yS82bz0fZvAGJ2q+JuZG8A06wHLdxJYQnqu1g+GIwBefq3l5xPXvJiJKNaDBtSu2EbCIUENZ85Bpw2vCHgPrd7gkCRZEhMzXTXGhU=----ATTACHMENT:----OTU1NzIyMDUyMTU5NTIyMiA2MTcxNzgxOTA4NTM0MDc5IDgwNDQwODEwNDk3MDY0MzI=