Как описать структуру PHP объекта?
Чтобы делать "каскад" последовательных методов тебе нужно в каждом методе возвращать этот же объект.

class Base {
	
	public function test($string){
		// Что то делаем.
		return $this;
	}
	
	public function chek($string){
		// Что то делаем.
		return $this;
	}
	
	public function hello(){
		// Что то делаем.
		return $this;
	}
}
А писать в коде удобнее так:

$base
->test('string1')
->chek('string')
->hello();
Классы могут выглядеть как угодно.
К синтакису вызова "структура объектов" (на самом деле классов) не имеет никакого отношения.

В РНР используется унифицированный синтаксис. К результату любого выражения в РНР можно обратиться так же как к переменной. 
Если выражение возвращает массив, то можно приписать скобочки и обратиться к элементу возвращаемого массива
echo function()[1];
Если выражение возвращает объект, то можно приписать стрелочку обратиться к методу или свойству
echo function()[1]->hello;

Следовательно, чтобы писать стрелочку после метода, метод - сюрприз - должен возвращать объект. Себя или любой другой - без разницы