Code: Select all
trait ContextTrait
{
public Subscriptions $subscription;
public function setSubscription(Subscriptions $value): self
{
$this->subscription = $value;
return $this;
}
}
abstract class Transaction
{
use ContextTrait;
protected ?int $paymentMethodId = null;
public function setPaymentMethodId(?int $value): self
{
$this->paymentMethodId = $value;
}
}
class Invoice extends Transaction
{
protected ?string $dueDate = null;
public function setDueDate(?string $value): self
{
$this->dueDate = $value;
return $this;
}
}
< /code>
Beim Initialisieren der Klasse wie folgt: < /p>
$invoice = (new Invoice)
->setSubscription(...)
->setPaymentMethodId(...)
->setDueDate(...);
< /code>
Ich habe die folgenden Probleme: < /p>
Die IntelliSense (beim Tippen) funktioniert nur für die Funktionen -> setSubScription
< /ol>
Wenn ich einen anderen Instanziationsansatz verwende (ohne Verkettung): < /p>
$invoice = new Invoice;
$invoice->setSubscription(...);
$invoice->setPaymentMethodId(...);
$invoice->setDueDate(...);
< /code>
Alles funktioniert perfekt. Gibt es eine Möglichkeit, dies zu beheben?