/** Write the relationship to the DB **/ public function write(PDO $db = NULL) { if (is_null($db)) { $db = $this->_db; } $relationship = get_class($this); $relname = TLO::transClassTable($relationship); $location_class = $relationship::relationMany(); $relation_class = $relationship::relationOne(); $query = self::sqlWrite($relationship); $params = array(); $obj = $this; TLO::concreteClassLoop($relationship, __CLASS__, function ($class) use($relname, &$params, $obj) { TLO::propertyLoop($class, __CLASS__, function ($p) use($relname, &$params, $obj) { $params[] = $obj->{$p}; }); }); foreach ($this->getKeys() as $key => $val) { $params[] = $val; } $s = TLO::prepare($db, $query); TLO::execute($s, $params); }
public function testConcreteClassLoop() { $classes = array(); TLO::concreteClassLoop('Test1', 'TLO', function ($c) use(&$classes) { $classes[] = $c; }); $this->assertEqual($classes, array('Test1')); $classes = array(); TLO::concreteClassLoop('Test2', 'TLO', function ($c) use(&$classes) { $classes[] = $c; }); $this->assertEqual($classes, array()); $classes = array(); TLO::concreteClassLoop('Test3', 'TLO', function ($c) use(&$classes) { $classes[] = $c; }); $this->assertEqual($classes, array('Test3', 'Test1')); }