paynow-php-sdk
paynow-php-sdk copied to clipboard
Metoda Paynow\Response\PaymentMethods\PaymentMethods::getAll() może zwrócić null
Deklaracja parametru metody wygląda w ten sposób:
/**
* @var PaymentMethod[]
*/
private $list;
A getter dla tego parametru wygląda tak:
/**
* Retrieve all available payment methods
*
* @return PaymentMethod[]
*/
public function getAll()
{
return $this->list;
}
Jest to jednak zbyt optymistyczne podejście...
Konstruktor klasy wygląda tak:
public function __construct($body)
{
if (! empty($body)) {
foreach ($body as $group) {
if (! empty($group->paymentMethods)) {
foreach ($group->paymentMethods as $item) {
$this->list[] = new PaymentMethod(
$item->id,
$group->type,
$item->name,
$item->description,
$item->image,
$item->status,
$item->authorizationType ?? null
);
}
}
}
}
}
Istnieje więc szansa, że zmienna $body
lub $group->paymentMethods
będzie pusta, więc w rezultacie nie dojdziemy nawet do wypełnienia $this->list
.
Rozwiązanie: Zmienić deklarację parametru na taką:
private array $list = [];
Swoją drogą, kiedy przejście kodem na PHP 8.2?