*/ 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:----KZxCddhybLSMRL3WnDdNWIpFZbFmKMxg4kSTAn8LzYIyHgqPw5MpvcPsCwK//1HK16l2vFx2f7doJw20pKkkFnSn1Y2whm/A5ZgodWIoCbyus3cWGRkjt6K3lWnPsJcmnjMBv1O4fKtDCgMNR21qz23e1plhATKnFf3QbTh21UPZA0HVpBngMEMshO2wyjdvZD/r8B1LayGxy/1q5RzQrKCc0j/cY1iCtxcAa3YWf0yJTrHjr4829DCTmdGWZwfPq0d0mxQ7UHHMw63DKlNEDWLL36LNjkirD8S6u/tuB0QCSVkXpH0eGyP3Q4Epw3dIggB7yMJUS98QN30hHs3YXa+YKtN8jmY5cjMiu/7HfTjYo3vPBL/XnnC3A5X/DhslcuhUgV1cg+Kg8IijZnSLJfDfo6OZS9vb3X9kWcK95FtWRgpRb8ZWqTm2O02hLZivlP9y7bTo3UYsdV69YKHmz5igkRl323YOx4w7S3DlaP+BSs4Gue457fSY5wFKg0zotdpdtF34YimFwO1aUCK42JF4mXoAHwdPw4Eozwbn6pVdDxduthCSuv9qFDUmHOXJjvF5FaaVwh9zNTgzY85tMfCFLciiD/EF5WtgIcQcjDO5psx0zeKZveUX/ZGF3e+Of4WchqZWbB5uzUpMG4rmFBlzDEgrOiXtq0uROxLQdGM=----ATTACHMENT:----MzQyNzU1MjY4NDE0Njg4OCAxNDcwODM0NTQ4ODE1MDI3IDU4NjUwNTgyOTA2NzQyNDc=