getConnectTimeout() ) { $options->setConnectTimeout( self::DEFAULT_CONNECT_TIMEOUT ); } if ( null === $options->getTimeout() ) { $options->setTimeout( self::get_timeout_from_env_or_default() ); } return $options; } /** * Gets timeout from environment variable or the default. * * @since 1.0.0 * * @return float Timeout in seconds. */ private static function get_timeout_from_env_or_default(): float { $timeout = getenv( self::TIMEOUT_ENV ); if ( false === $timeout || '' === $timeout || ! is_numeric( $timeout ) ) { return self::DEFAULT_TIMEOUT; } $timeout_value = (float) $timeout; if ( $timeout_value <= 0 ) { return self::DEFAULT_TIMEOUT; } return $timeout_value; } }