Honestly I've never understood all the extra crap people put into static objects to make them "singletons" in the first place. If it's an object filled with statics, what / why would you even have constructors in the first place, much less the idiotic (every offense meant) overhead inducing "instance" rubbish.
But to be fair that's a bit like the "controller" rubbish indicative of shoe-horning in concepts like MVC where they don't even fit -- like in PHP. I've used MVC where it makes sense, such as where you have to maintain your own event intercepting loops in RTOS like QNX or pervasively multithreaded programming such as BeOS / Haiku.
But in a language where you get a request, process it, and then output the result glued to markup, MVC is a total complexity mismatch -- thus making "controllers" and "invoking" and the rest of that stuff is code better off not written in the first place.
Whether it's a static class, singleton, or whatever having not a whit to do with it.
But to be fair I'm an old school developer who glazes over every time career educator an bullshit bingo like "paradigms" or "state" come into a discussion about software. Usually an indication that everything is being overthought, using hundreds of k of code to do tens of k's job, and a general circle-jerk of high sounding but ultimately meaningless words to sweep incompetence under the rug.
Aka gibberish nobody outside of college talked about until about eight to ten years ago.