Example #1
0
 /**
  * cast - Return a new instance of a FacebookGraphObject subclass for this
  *   objects underlying data.
  *
  * @param string $type The GraphObject subclass to cast to
  *
  * @return GraphObject
  *
  * @throws FacebookSDKException
  */
 public function cast($type)
 {
     if ($this instanceof $type) {
         return $this;
     }
     if (is_subclass_of($type, GraphObject::className())) {
         return new $type($this->backingData);
     } else {
         throw new FacebookSDKException('Cannot cast to an object that is not a GraphObject subclass', 620);
     }
 }
Example #2
0
 /**
  * Returns an array of GraphObject returned by the request.  If a type is
  * specified, returns the strongly-typed subclass of GraphObject for the data.
  *
  * @param string $type
  *
  * @return mixed
  */
 public function getGraphObjectList($type = 'Facebook\\GraphObject')
 {
     $out = array();
     $data = $this->responseData->data;
     for ($i = 0; $i < count($data); $i++) {
         $graph = new GraphObject($data[$i]);
         $out[] = $graph->cast($type);
     }
     return $out;
 }
Example #3
0
 /**
  * getPropertyAsArray - Get the list value of a named property for this graph
  *   object, where each item has been cast to the appropriate subclass type
  *   if provided.
  *
  * Calling this for a property that is not an array, the behavior
  *   is undefined, so don’t do this.
  *
  * @param string $name The property to retrieve
  * @param string $type The subclass of GraphObject, optionally
  *
  * @return array
  */
 public function getPropertyAsArray($name, $type = 'Facebook\\GraphObject')
 {
     $target = array();
     if (isset($this->backingData[$name]['data'])) {
         $target = $this->backingData[$name]['data'];
     } else {
         if (isset($this->backingData[$name]) && !is_scalar($this->backingData[$name])) {
             $target = $this->backingData[$name];
         }
     }
     $out = array();
     foreach ($target as $key => $value) {
         if (is_scalar($value)) {
             $out[$key] = $value;
         } else {
             $graph = new GraphObject($value);
             $out[$key] = $graph->cast($type);
         }
     }
     return $out;
 }