This is a (rather useless) example of how I typically bootstrap most of my WordPress plugins.
A lot of my WordPress plugins are a combination of a generalised, reusable PHP library (that may be separated into its own Composer package), and a WordPress integration plugin wrapping that reusable library.
This means that there are several possible ways of interacting with that library, which means that I also have as many different bootstrapping paths. For unit testing, for example, I don't use the WordPress plugin wrapping the library, but rather instantiate the library directly to test it in isolation.
All of these have in common that my objects are configurable through Config files, and a very simple way of having them behave differently for each bootstrapping path is to have different configuration files.
This gives me lots of flexible, and is one of the best ways of creating more reusable code that you can grow from project to project.