]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
getByUri shorthand function for Managed_DataObject (with uri)
authorMikael Nordfeldth <mmn@hethane.se>
Sat, 25 Jun 2016 09:52:17 +0000 (11:52 +0200)
committerMikael Nordfeldth <mmn@hethane.se>
Sat, 25 Jun 2016 09:52:17 +0000 (11:52 +0200)
classes/Managed_DataObject.php

index 89263ee778439ed77d93b58cb62b67af4a54e4ae..8c9a55f2b6d1d38c50513d872387d7085f86a275 100644 (file)
@@ -383,6 +383,9 @@ abstract class Managed_DataObject extends Memcached_DataObject
 
     static function getByID($id)
     {
+        if (!property_exists(get_called_class(), 'id')) {
+            throw new ServerException('Trying to get undefined property of dataobject class.');
+        }
         if (empty($id)) {
             throw new EmptyPkeyValueException(get_called_class(), 'id');
         }
@@ -391,6 +394,24 @@ abstract class Managed_DataObject extends Memcached_DataObject
         return static::getByPK(array('id' => $id));
     }
 
+    static function getByUri($uri)
+    {
+        if (!property_exists(get_called_class(), 'uri')) {
+            throw new ServerException('Trying to get undefined property of dataobject class.');
+        }
+        if (empty($uri)) {
+            throw new EmptyPkeyValueException(get_called_class(), 'uri');
+        }
+
+        $class = get_called_class();
+        $obj = new $class();
+        $obj->uri = $uri;
+        if (!$obj->find(true)) {
+            throw new NoResultException($obj);
+        }
+        return $obj;
+    }
+
     /**
      * Returns an ID, checked that it is set and reasonably valid
      *