Умеет ли PHPStorm распознавать возвращаемый объект через статический метод?
у метода getSingleton() надо коммент /** return singleton */
/**
 * @return singleton
 */
public function getSingleton(){

// и даже по цепочке должно работать
/**
 * @return singleton
 */
public static function getInstance() {

у метода getSingleton() надо коммент /** return singleton */
/**
 * @return singleton
 */
public function getSingleton(){

// и даже по цепочке должно работать
/**
 * @return singleton
 */
public static function getInstance() {
