Since PHP 8.4 there are abstract properties now: https://www.php.net/manual/en/language.oop5.abstract.php
As of PHP 8.4, an abstract class may declare an abstract property, either public or protected. A protected abstract property may be satisfied by a property that is readable/writeable from either protected or public scope.
An abstract property may be satisfied either by a standard property or by a property with defined hooks, corresponding to the required operation.