>for static variables, always use self::$name
>for class constants, always use self::NAME 

This is why i ask @cebe to make issue to check. We have inconsistency with that. Many places with `static::NAME` and `static::$name`.

>in a non-static method, always call static methods as $this->method()
>in a static method, usually call static methods as static::method() 

First i was want to ask an question why to not use `static::method()` for both variant? Later i realize that this make sense. This way allow to think from side `We have instance?` instead of `Is this method we want to call is static?`. I will make new PR where we have `$this->getNamespaceClass(...)` since even if `getNamespaceClass()` is static we use it inside non static methods.