function __construct($params = null, $new_record = true, $is_modified = false) { /* setup associations */ foreach ($this->assoc_types as $type) { if (isset($this->{$type})) { $class_name = ActiveRecordInflector::classify($type); foreach ($this->{$type} as $assoc) { $assoc = self::decode_if_json($assoc); /* handle association sent in as array with options */ if (is_array($assoc)) { $key = key($assoc); $this->{$key} = new $class_name($this, $key, current($assoc)); } else { $this->{$assoc} = new $class_name($this, $assoc); } } } } /* setup attributes */ if (is_array($params)) { foreach ($params as $key => $value) { $this->{$key} = $value; } $this->is_modified = $is_modified; $this->new_record = $new_record; } }
function __construct($source, $dest, $options = null) { $this->source_class = get_class($source); if (isset($options['class_name'])) { $this->dest_class = $options['class_name']; } else { $this->dest_class = ActiveRecordInflector::classify($dest); } if (isset($options['foreign_key'])) { $this->foreign_key = $options['foreign_key']; } else { $this->foreign_key = ActiveRecordInflector::foreign_key($this->source_class); } $this->options = $options; }
function break_up($objects, &$source) { foreach ($objects as $object) { if (isset($this->options['dependent']) && $this->options['dependent'] == 'destroy') { $object->destroy(); } else { if (!$this->options['through']) { $object->{$this->foreign_key} = null; $object->save(); } else { $through_class = ActiveRecordInflector::classify($this->options['through']); $fk_1 = ActiveRecordInflector::foreign_key($this->dest_class); $fk_2 = ActiveRecordInflector::foreign_key($this->source_class); $k1 = $object->{$object->get_primary_key()}; $k2 = $source->{$source->get_primary_key()}; $through = call_user_func_array(array($through_class, 'find'), array('first', array('conditions' => "{$fk_1} = {$k1} AND {$fk_2} = {$k2}"))); $through->destroy(); } } } }
function __construct($source, $dest, $options = null) { $this->source_class = get_class($source); $this->dest_class = ActiveRecordInflector::classify($dest); $this->options = $options; }
foreach ($table_s as $table) { $tables[] = $table; } /* end hack for PDO */ foreach ($tables as $table_row) { $table_name = current($table_row); $table_vanity_name = $table_name; if (AR_PREFIX && AR_PREFIX != '') { $table_vanity_name = preg_replace('/^' . AR_PREFIX . '/', '', $table_name); } if (is_array($AR_TABLES)) { if (!in_array($table_vanity_name, $AR_TABLES)) { continue; } } $class_name = ActiveRecordInflector::classify($table_vanity_name); $columns_q = ActiveRecord::query("DESC {$table_name}"); $columns = array(); foreach ($columns_q as $column_row) { $columns[] = "'" . $column_row['Field'] . "'"; if ($column_row['Key'] == 'PRI') { $primary_key = $column_row['Field']; } } if (!file_exists($stub_models_dir . $class_name . ".php")) { $gen_file = $stub_template; $gen_file = preg_replace('/{\\$class_name}/', $class_name, $gen_file); file_put_contents($stub_models_dir . $class_name . ".php", $gen_file); } $gen_file = $template; $gen_file = preg_replace('/{\\$ar_dir}/', $this_dir, $gen_file);