Можете ли вы строго ввести черту в PHP? - PullRequest
0 голосов
/ 04 августа 2020

У меня есть класс, в котором хранится вся информация о запросах. Теперь я хочу создать свойство пользователя для этого запроса, так как запрос может содержать "пользователя" в базе данных.

Это выглядит и отлично работает:

trait User {
    public function isGuest(): Bool { return !isset($this->session( 'oauth' )); }
}

class Request
{
    use User;
    private Array $_session =& $_SESSION;

    public function session( $key ) : String { return $this->_session[ $key ]; }
}

Проблема I есть, заключается в том, что эта черта может использоваться для любого класса, в котором, возможно, нет метода session( $key ).

Все мое программирование строго типизировано, я объявляю свои возвращаемые типы, аргументы и т. д. 1014 * ... чтобы избежать столкновения. Есть ли способ строгой типизации признака? Для чего это может быть использовано только классом Request?

Я в основном хочу сказать, что User отличается от Request. Или это невозможно и нужно делать в интерфейсе?

...