php calling abstract static function from inside abstrac class
abstract class AbstractFoo{
    public static function foo() {
        throw new RuntimeException("Unimplemented");
    }
    public static function getFoo(){
        return static::foo();
    }
}
class ConcreteFoo extends AbstractFoo{
    public static function foo(){
        return "bar";
    }
}
echo ConcreteFoo::getFoo();