/** * Replacements setter/getter. * * @param array $replacements * * @return mixed */ public function replacements($replacements = null) { if (func_num_args() === 0) { return $this->replacements; } else { // Unregister old replacements : if (isset($this->replacements) && count($this->replacements) > 0) { foreach ($this->replacements as $replacement) { $replacement->unregister_user($this); } } // Set new replacements : $this->replacements = array(); foreach ($replacements as $replacement) { // Turn replacements that aren't fragments into value fragments (SQL = quoted value) : if (!$replacement instanceof GlueDB_Fragment) { $replacement = new GlueDB_Fragment_Value($replacement); } // Set up dependency : $replacement->register_user($this); // Add replacement : $this->replacements[] = $replacement; } // Invalidate : $this->invalidate(); return $this; } }
/** * Values setter/getter. * * @param array $values * * @return mixed */ public function values($values = null) { if (func_num_args() === 0) { return $this->values; } else { // Unregister old values : if (isset($this->values) && count($this->values) > 0) { foreach ($this->values as $value) { $value->unregister_user($this); } } // Set new values : $this->values = array(); foreach ($values as $value) { // Turn values that aren't fragments into value fragments (SQL = quoted value) : if (!$value instanceof GlueDB_Fragment) { $value = new GlueDB_Fragment_Value($value); } // Set up dependency : $value->register_user($this); // Add value : $this->values[] = $value; } // Invalidate : $this->invalidate(); return $this; } }
/** * Compiles GlueDB_Fragment_Value fragments into an SQL string. * * @param GlueDB_Fragment_Value $fragment * * @return string */ public function compile_value(GlueDB_Fragment_Value $fragment) { // Get data from fragment : $value = $fragment->value(); // Generate SQL : return $this->quote_value($value); }