Deprecated: array_key_exists(): Using array_key_exists() on objects is deprecated. Use isset() or property_exists() instead in phar:///Users/jonathanstegall/Sites/phpDocumentor.phar/vendor/twig/twig/lib/Twig/Template.php on line 527 object_type = $object_type; } /** * Add a condition to the query. * * @param string $field * Field name. * @param mixed $value * Condition value. If an array, it will be split into quote enclosed * strings separated by commas inside of parenthesis. Note that the caller * must enclose the value in quotes as needed by the SF API. * @param string $operator * Conditional operator. One of '=', '!=', '<', '>', 'LIKE, 'IN', 'NOT IN'. */ public function add_condition( $field, $value, $operator = '=' ) { if ( is_array( $value ) ) { $value = "('" . implode( "','", $value ) . "')"; // Set operator to IN if wasn't already changed from the default. if ( '=' === $operator ) { $operator = 'IN'; } } $this->conditions[] = array( 'field' => $field, 'operator' => $operator, 'value' => $value, ); } /** * Implements PHP's magic __toString(). * * Function to convert the query to a string to pass to the SF API. * * @return string * SOQL query ready to be executed the SF API. */ public function __toString() { $query = 'SELECT '; $query .= implode( ', ', $this->fields ); $query .= ' FROM ' . $this->object_type; if ( count( $this->conditions ) > 0 ) { $where = array(); foreach ( $this->conditions as $condition ) { $where[] = implode( ' ', $condition ); } $query .= ' WHERE ' . implode( ' AND ', $where ); } if ( $this->order ) { $query .= ' ORDER BY '; $fields = array(); foreach ( $this->order as $field => $direction ) { $fields[] = $field . ' ' . $direction; } $query .= implode( ', ', $fields ); } if ( $this->limit ) { $query .= ' LIMIT ' . (int) $this->limit; } if ( $this->offset ) { $query .= ' OFFSET ' . (int) $this->offset; } return $query; } }