короткий ответ, это действительно ваше дело.
Лично я бы не использовал ванильный getter
в вашем __toString()
методе.
Чисто потому, что если кто-то еще изменит интерфейс метода, он может изменить вывод, и может быть неочевидно, что он сломает метод __toString
. (Кроме того, это (бесконечно мало) медленнее, и мой OCD не допустит этого: D)
Однако, если в вашем getter
есть какая-то другая логика (подразумевающая, что это не просто доступ к свойству необработанного класса), то вам, возможно, все равно придется обращаться к методу. Если бы это было так, я бы удостоверился, что его подсказка типа возвращает строку (в php7), чтобы вы могли быть уверены, что общий интерфейс этого метода предсказуем.
public function getPrice(): string
{
// some fancy logic that makes it a complex getter...
$price = $this->someLogic($this->price);
return $price;
}