Как решить проблему возвращаемых объектов? Нужно вывести имя клиента платежа. Возьмем такой пример:class Payment { /** * @var Customer|null */ protected $customer;
public function getCustomer() { return $this->customer; }
public function setCustomer(Customer $customer) { $this->customer = $customer; } } class Customer { public function getFirstname() { return 'Name'; } }/** @var Payment $payment */ echo $payment->getCustomer()->getFirstname(); Как вы могли догадаться, бывает так что клиента в платеже нет. Был удален, например. В этом случае возникнет ошибка потому что обращение к null. Можно создать метод с проверкой (или просто условие):public function printCustomerFirstname(Payment $payment) { if ($payment->getCustomer()) { echo $payment->getCustomer()->getFirstname(); } } /** @var Payment $payment */ printCustomerFirstname($payment); Но как бы это решил "синьер"? Возможно что в 2018 уже выработался какой-то best practice.