Для справки, вот вопрос о SO, который я недавно задавал, который имеет отношение к этому вопросу: Как моделировать отношения дружбы
По этому вопросу мы нашли способ отображать новостные ленты только в том случае, если они опубликованы друзьями. Однако мне нужен совет о том, как более динамично проверять дружбу, чтобы ее можно было использовать в нескольких функциях сайта.
Например, я только что установил систему комментариев, позволяющую пользователям оставлять комментарии к новостным сообщениям. Тем не менее, это не ограничивается друзьями, и это должно быть (и позднее автор поста должен сделать это необязательным).
Публикация новостей только друзьями была немного другой, потому что я получал данные непосредственно из базы данных и использовал подзапросы SELECT
, чтобы получать сообщения только от друзей текущего пользователя. Однако в примере с комментариями я хочу отображать форму комментария только в том случае, если этот человек является другом. На самом деле я ничего не извлекаю из базы данных, чтобы выбирать, сортировать и отображать.
Зная, что подобные проблемы будут возникать много раз по всему сайту, какой самый простой способ проверить дружбу? Могу ли я каким-то образом вытащить все идентификаторы пользователей всех друзей из базы данных в какой-либо массив сеансов, а затем выполнить if(in_array($friends))
всякий раз, когда мне нужно определить, является ли данное лицо другом в данный момент вошедший в систему пользователь? С моей головы это звучит так, как будто все будет работать нормально, но я бы сначала хотел, чтобы вы внесли свой вклад.
Вопрос, на который я ссылался выше, объясняет, как работает мой стол дружбы, в случае, если вы поможете мне с этим.