У меня есть класс, в котором хранится вся информация о запросах. Теперь я хочу создать свойство пользователя для этого запроса, так как запрос может содержать "пользователя" в базе данных.
Это выглядит и отлично работает:
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
. Или это невозможно и нужно делать в интерфейсе?