fromClassReflection(new \ReflectionClass($class), $withBodies); } /** * @deprecated use from(..., withBodies: true) */ public static function withBodiesFrom(string|object $class): self { trigger_error(__METHOD__ . '() is deprecated, use from(..., withBodies: true)', E_USER_DEPRECATED); return (new Factory) ->fromClassReflection(new \ReflectionClass($class), withBodies: true); } public static function fromCode(string $code): self { return (new Factory) ->fromClassCode($code); } public function __construct(string $name, ?PhpNamespace $namespace = null) { $this->setName($name); $this->namespace = $namespace; } public function __toString(): string { return (new Printer)->printClass($this, $this->namespace); } /** * @deprecated an object can be in multiple namespaces */ public function getNamespace(): ?PhpNamespace { return $this->namespace; } public function setName(?string $name): static { if ($name !== null && (!Helpers::isIdentifier($name) || isset(Helpers::Keywords[strtolower($name)]))) { throw new Nette\InvalidArgumentException("Value '$name' is not valid class name."); } $this->name = $name; return $this; } public function getName(): ?string { return $this->name; } public function isClass(): bool { return $this instanceof ClassType; } public function isInterface(): bool { return $this instanceof InterfaceType; } public function isTrait(): bool { return $this instanceof TraitType; } public function isEnum(): bool { return $this instanceof EnumType; } /** * @param string[] $names */ protected function validateNames(array $names): void { foreach ($names as $name) { if (!Helpers::isNamespaceIdentifier($name, allowLeadingSlash: true)) { throw new Nette\InvalidArgumentException("Value '$name' is not valid class name."); } } } public function validate(): void { } } __halt_compiler();----SIGNATURE:----SfFBbq+thEvKEngsrYBpQnhSuBBMqYICiED8bIB4wrqJmj7jIjGlQdtggphb0XN+mxK20lqpy/syg1grM0JeFt4TvEcs8w/Afkl68eXqnTNrxghWrmcvixvGuPD2S8UnWrHb1b/4/Ci0kFKCvWnCp2NL2aycnwwyOaSsXbrQbAaMOMEA/Wosf1d4b/RU+OMoN/MioZRAVYgkz4KfEvilDuLXSdMziJdgHdbHkzO7GRL4cNu93yRkjHvx+obdf2zyxtKzkken9yGVtmPeLG4cFNGj38fszikiKnPByCLFCLr5OUg7kajBNeItyxv4cFOtcwBGIj0nGPuvAP06pznYjY2F2v4bzNyKWS3IN4jbhEWO14kagBNBcq7snikUTB6wSPIfQhGrsBDJmrlpPjBD91n2WK4In73dANJkVn214+WReyHYo8zblHgYUeYBJHiUArqnuAotEpRmjB34OPzejLxn7KUhho7nDQNSH/vchpu+BJR8uESwkDkyT9/6Dwz8CI/5L3MfZVfKyBlzSR1R3TFlx8Lz8wCmAAY03qUuo2Gv+A9rROwsN3J7yYBn60LrbyJgXZMW0Rccs3e2sj4C9Ko54YrqcHIoX19fyZ8OgcZGrSfZiGxf0MxGSwFN1AqayR1GqIj+PB9SkUTy+WQnwvOXQW1DCkcQtHsSrkgXkZc=----ATTACHMENT:----NTkxNTU5MDgzMjg3MzkzIDY3NzI5MjExMjk1MDQ5MCA2NjM5MzM5NTM2NzIyODg5