Nette\SmartObject::__set PHP Метод

__set() публичный Метод

public __set ( $name, $value ) : void
Результат void
    public function __set($name, $value)
    {
        $class = get_class($this);
        $uname = ucfirst($name);
        if (ObjectMixin::hasProperty($class, $name)) {
            // unsetted property
            $this->{$name} = $value;
        } elseif ($prop = ObjectMixin::getMagicProperty($class, $name)) {
            // property setter
            if (!($prop & 0b1000)) {
                throw new MemberAccessException("Cannot write to a read-only property {$class}::\${$name}.");
            }
            $this->{'set' . $name}($value);
        } elseif ($name === '') {
            throw new MemberAccessException("Cannot write to a class '{$class}' property without name.");
        } elseif (($methods =& ObjectMixin::getMethods($class)) && isset($methods[$m = 'set' . $uname])) {
            // old property setter
            trigger_error("Add annotation @property for {$class}::\${$name} or use {$m}()" . ObjectMixin::getSource(), E_USER_DEPRECATED);
            $this->{$m}($value);
        } elseif (isset($methods['get' . $uname]) || isset($methods['is' . $uname])) {
            // property setter
            throw new MemberAccessException("Cannot write to a read-only property {$class}::\${$name}.");
        } else {
            ObjectMixin::strictSet($class, $name);
        }
    }