]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
store oft-requested stuff in the data object
authorEvan Prodromou <evan@status.net>
Thu, 7 Apr 2011 20:55:32 +0000 (16:55 -0400)
committerEvan Prodromou <evan@status.net>
Thu, 7 Apr 2011 20:55:32 +0000 (16:55 -0400)
classes/Notice.php
classes/Profile.php
classes/User.php

index c80e57dc9759d1b3846e2d5cf139a6816c634cff..168844330193f537b4f6d8d7c5d1b1979388e365 100644 (file)
@@ -96,17 +96,21 @@ class Notice extends Memcached_DataObject
     const GROUP_SCOPE     = 4;
     const FOLLOWER_SCOPE  = 8;
 
+    protected $_profile = -1;
+
     function getProfile()
     {
-        $profile = Profile::staticGet('id', $this->profile_id);
+        if ($this->_profile == -1) {
+            $this->_profile = Profile::staticGet('id', $this->profile_id);
 
-        if (empty($profile)) {
-            // TRANS: Server exception thrown when a user profile for a notice cannot be found.
-            // TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number).
-            throw new ServerException(sprintf(_('No such profile (%1$d) for notice (%2$d).'), $this->profile_id, $this->id));
+            if (empty($this->_profile)) {
+                // TRANS: Server exception thrown when a user profile for a notice cannot be found.
+                // TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number).
+                throw new ServerException(sprintf(_('No such profile (%1$d) for notice (%2$d).'), $this->profile_id, $this->id));
+            }
         }
 
-        return $profile;
+        return $this->_profile;
     }
 
     function delete()
index d87ace42c5a77760574699f680850f0746a3efdd..b8c49327802d09f1de3a2d5cb3c60dc140c466c4 100644 (file)
@@ -52,9 +52,15 @@ class Profile extends Memcached_DataObject
     /* the code above is auto generated do not remove the tag below */
     ###END_AUTOCODE
 
+    protected $_user = -1;  // Uninitialized value distinct from null
+
     function getUser()
     {
-        return User::staticGet('id', $this->id);
+        if ($this->_user == -1) {
+            $this->_user = User::staticGet('id', $this->id);
+        }
+
+        return $this->_user;
     }
 
     function getAvatar($width, $height=null)
index f2b5b083718dbaa556c67ccd3b5e21a787df270b..48b0f49f3da93e9802031e8ef5f39cf6c8a369fe 100644 (file)
@@ -73,16 +73,21 @@ class User extends Memcached_DataObject
     /* the code above is auto generated do not remove the tag below */
     ###END_AUTOCODE
 
+    protected $_profile = -1;
+
     /**
      * @return Profile
      */
     function getProfile()
     {
-        $profile = Profile::staticGet('id', $this->id);
-        if (empty($profile)) {
-            throw new UserNoProfileException($this);
+        if ($this->_profile == -1) { // invalid but distinct from null
+            $this->_profile = Profile::staticGet('id', $this->id);
+            if (empty($this->_profile)) {
+                throw new UserNoProfileException($this);
+            }
         }
-        return $profile;
+
+        return $this->_profile;
     }
 
     function isSubscribed($other)