docs: update global viper documentation

Signed-off-by: Mark Sagi-Kazar <mark.sagikazar@gmail.com>
This commit is contained in:
Mark Sagi-Kazar 2024-06-05 09:32:46 +02:00 committed by Márk Sági-Kazár
parent 3640bcdc46
commit db85e2a92d
1 changed files with 8 additions and 6 deletions

View File

@ -836,13 +836,15 @@ func yamlStringSettings() string {
## Viper or Vipers? ## Viper or Vipers?
Viper comes ready to use out of the box. There is no configuration or Viper comes with a global instance (singleton) out of the box.
initialization needed to begin using Viper. Since most applications will want
to use a single central repository for their configuration, the viper package
provides this. It is similar to a singleton.
In all of the examples above, they demonstrate using viper in its singleton Although it makes setting up configuration easy,
style approach. using it is generally discouraged as it makes testing harder and can lead to unexpected behavior.
The best practice is to initialize a Viper instance and pass that around when necessary.
The global instance _MAY_ be deprecated in the future.
See [#1855](https://github.com/spf13/viper/issues/1855) for more details.
### Working with multiple vipers ### Working with multiple vipers