From 6378dc95eee08632b262b7d7552c92ae09316cd1 Mon Sep 17 00:00:00 2001 From: Pierre Date: Tue, 9 Jan 2018 06:57:01 +0100 Subject: [PATCH] Cache friendship informations --- classes/components/friends.php | 50 ++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 18 deletions(-) diff --git a/classes/components/friends.php b/classes/components/friends.php index e7d691c..4a3c08c 100644 --- a/classes/components/friends.php +++ b/classes/components/friends.php @@ -12,6 +12,11 @@ class friends { */ private $friendsTable = "amis"; + /** + * Cache friendship informations + */ + private $frienship_cache = array(); + /** * Public construcor */ @@ -168,12 +173,16 @@ class friends { /** * Check wether two users are friend or not * - * @param $user1 The ID of the first user - * @param $user2 The ID of the second user + * @param int $user1 The ID of the first user + * @param int $user2 The ID of the second user * @return TRUE if the users are friend / FALSE else */ public function are_friend(int $user1, int $user2) : bool { + //Check if the response is in the cache + if(isset($this->frienship_cache[$user1."-".$user2])) + return $this->frienship_cache[$user1."-".$user2]; + //Query the friends table $tableName = $this->friendsTable; $conditions = "WHERE ID_personne = ? AND ID_amis = ? AND actif = 1"; @@ -183,15 +192,20 @@ class friends { $response = CS::get()->db->select($tableName, $conditions, $condValues); //Return the result - return count($response) > 0; + $are_friend = count($response) > 0; + + //Cache the response + $this->frienship_cache[$user1."-".$user2] = $are_friend; + + return $are_friend; } /** * Send a friendship request * - * @param $userID The ID of the user creating the request - * @param $targetID The target of the friendship request - * @return TRUE in case of success / FALSE else + * @param int $userID The ID of the user creating the request + * @param int $targetID The target of the friendship request + * @return bool TRUE in case of success / FALSE else */ public function send_request(int $userID, int $targetID) : bool { @@ -211,9 +225,9 @@ class friends { /** * Delete a friendship request previously created * - * @param $userID The ID of the user removing its request - * @param $targetID The ID of the target of the request - * @return TRUE in case of success / false else + * @param int $userID The ID of the user removing its request + * @param int $targetID The ID of the target of the request + * @return bool TRUE in case of success / false else */ public function remove_request(int $userID, int $targetID) : bool { @@ -231,9 +245,9 @@ class friends { * Check wether a user has sent a friendship * request to another friend * - * @param $user The ID of the user supposed to have sent a request - * @param $targetUser The ID of the target user - * @return TRUE if a request has been sent / FALSE else + * @param int $user The ID of the user supposed to have sent a request + * @param int $targetUser The ID of the target user + * @return bool TRUE if a request has been sent / FALSE else */ public function sent_request(int $user, int $targetUser) : bool { @@ -252,9 +266,9 @@ class friends { /** * Check wether a user is following or not another friend * - * @param $userID The ID of the user supposed to follow another friend - * @param $friendID The ID of the friend - * @return TRUE if the user is following the other user / FALSE else + * @param int $userID The ID of the user supposed to follow another friend + * @param int $friendID The ID of the friend + * @return bool TRUE if the user is following the other user / FALSE else */ public function is_following(int $userID, int $friendID) : bool { @@ -277,10 +291,10 @@ class friends { /** * Check wether a friend allows a friend to post text on his page or not * - * @param $userID The ID of the user performing the request - * @param $friendID The ID of the friend allowing or denying the user + * @param int $userID The ID of the user performing the request + * @param int $friendID The ID of the friend allowing or denying the user * to post texts on his page - * @return TRUE if the user is allowed to post texts on the page / FALSE else + * @return bool TRUE if the user is allowed to post texts on the page / FALSE else */ public function can_post_text(int $userID, int $friendID) : bool {