Да не поможет нифига.
Вот простейший пример (не то, что так надо делать, но иллюстрирует проблему):
PHP:
class Base {
/**
* @return $this
* // или return static - неважно
*/
public static function construct() {
return new static();
}
/**
* @return $this
*/
public function foo() {
return $this;
}
}
class Bar extends Base {
public function baz() {}
}
Bar::construct()
->foo()
->baz(); // ой!