If your question is just about "what's with this Registry
class, is it better than an array?" then: this class is just a wrapper around an array, it's useless. IMO it's because someone thought that using classes instead of arrays automatically makes their code object oriented (which is wrong). Or maybe he/she just wanted to give the array a fancy name to make its purpose clearer (Registry).
You can drop that class and use an array instead if you want to, you won't loose anything.
Or if you want to do even better, you can start to learn about dependency injection and DI containers (which is an alternative pattern to the "registry" pattern == global array).