It's important to note that this isn't thread safe. This is something similar I always use...it's in c# though, but the idea is the same http://snippetrepo.com/snippets/the-mingleton-a-singleton-that-plays-nice. It's been awhile since I've dug around in php so I don't remember off the top of my head how to lock, but if you can implement it like I did in mine you'd have a pretty good baseline.
The reason this is important is because you plan on using this in a static/global scope, and it's possible for two things to call getInstance right now and create two separate self() objects.
Anyways, good stuff.