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;
 }
Example #3
0
 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();
             }
         }
     }
 }
Example #4
0
 function __construct($source, $dest, $options = null)
 {
     $this->source_class = get_class($source);
     $this->dest_class = ActiveRecordInflector::classify($dest);
     $this->options = $options;
 }
Example #5
0
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);