code: protected function __propertyTraitHasProperty($propertyName)
      {
          // Check if getter or setter method exists
          if (method_exists($this, 'get'.$propertyName) || method_exists($this, 'set'.$propertyName)) {
              return true;
          }
          // Check if property is public
          try
          {
              $classReflection = new \ReflectionProperty(get_class($this), $propertyName);
              return $classReflection->isPublic();
          } catch (\ReflectionException $ex) {
              return false;
          }
      }
docs: Checks if the property exists
  
  This function checks if a setter method and/or a getter method
  is implemented for the property or the member variable is declared public
  
  @param string $propertyName
  @return bool