protected static function tryGetValue($provider, $object, $propertyName, &$error)
    {
        try {
            return call_user_func(array($provider, 'getValue'), $object, $propertyName);
        } catch (\InvalidArgumentException $e) {
            $error = $e;
            return null;
        }
    }
protected static function tryGetValue($provider, $object, $propertyName, &$error)
    {
        try {
            return call_user_func(array($provider, 'getValue'), $object, $propertyName);
        } catch (\InvalidArgumentException $e) {
            $error = $e;
            return null;
        }
    }
protected static function tryGetValue ( $ provider , $ object , $ propertyName , & $ error ) { try { return call_user_func ( array ( $ provider , 'getValue' ) , $ object , $ propertyName ) ; } catch ( \ InvalidArgumentException $ e ) { $ error = $ e ; return null ; } }
Try to get the value of an object property with a specific provider

@param string|object                   $provider     The provider class(name) to use
@param object                          $object       The object to read
@param string                          $propertyName The name of the property to read
@param \InvalidArgumentException|mixed $error        <p>
If an error occurs, this variable will be set to the error triggered
</p>

@return mixed|null <p>
The value of the object property, or <tt>null</tt> and an error in <tt>$error</tt> if an error occur.
</p>
Try to get the value of an object property with a specific provider