Nette\Utils\ObjectMixin::set PHP Method

set() public static method

__set() implementation.
public static set ( $_this, $name, $value ) : void
return void
    public static function set($_this, $name, $value)
    {
        $class = get_class($_this);
        $uname = ucfirst($name);
        $methods =& self::getMethods($class);
        if ($name === '') {
            throw new MemberAccessException("Cannot write to a class '{$class}' property without name.");
        } elseif (self::hasProperty($class, $name)) {
            // unsetted property
            $_this->{$name} = $value;
        } elseif (isset($methods[$m = 'set' . $uname])) {
            // property setter
            $_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 {
            self::strictSet($class, $name);
        }
    }

Usage Example

Example #1
0
 /**
  * Sets value of a property. Do not call directly.
  *
  * @param string $name
  * @param mixed $value
  *
  * @throws \Nette\MemberAccessException
  * @return void
  */
 public function __set($name, $value)
 {
     if ($name === '_conn') {
         $this->_conn = $value;
         return;
     }
     ObjectMixin::set($this, $name, $value);
 }
All Usage Examples Of Nette\Utils\ObjectMixin::set