code: public function set($object, $propertyName, $value)
      {
          $this->validateObject($object);
          $reflection = new \ReflectionClass($object);
          $this->validateProperty($reflection, $object, $propertyName);
          $property = $reflection->getProperty($propertyName);
          $property->setAccessible(true);
          $property->setValue($object, $value);
      }
docs: @param $object
  @param $propertyName
  @param $value
  @throws InvalidArgumentException
  @throws NotExistingPropertyException
  
  @api