private static function loadEntities() { $str = file_get_contents(Settings::get('entities')); echo $str; $entities = new SimpleXMLElement($str); foreach ($entities->entity as $entity) { $ent = new SimpleORM_Entity(); $ent->name = "{$entity['name']}"; foreach ($entity->field as $field) { $f = new SimpleORM_Field(); $f->name = "{$field['name']}"; $f->isKey = "{$field['key']}" == 'yes' ? true : false; $f->isNull = "{$field['null']}" == 'yes' ? true : false; $f->relationship = strlen("{$field['relationship']}") == 0 ? SimpleORM_Field::one_to_one : "{$field['relationship']}"; $f->isUnique = "{$field['unique']}" == 'yes' ? true : false; $f->entity = strlen("{$field['entity']}") == 0 ? null : self::getEntity("{$field['entity']}"); if (strlen($f->name) == 0) { $f->name = $f->entity->name; } $f->type = strlen("{$field['type']}") == 0 ? 'varchar(255)' : "{$field['type']}"; if ($f->isKey) { $ent->setID($f); } $ent->addField($f); //echo "name: $f->name unique:$f->isUnique relationship:$f->relationship entity:$f->entity<br>"; } self::$entities[$ent->name] =& $ent; } if (Settings::get('auto_create_table') == 'yes') { foreach (self::$entities as $entity) { foreach ($entity->createStmts() as $stmt) { try { SimpleORM_Connection::execute($stmt); } catch (Exception $e) { //Logger::logException($e); echo $e->getMessage(); echo "<br>"; echo $e->getTraceAsString(); } } } } }
public function delete($object) { foreach ($this->entity->getFields() as $field) { $entity = $field->entity; $entname = $field->name; if ($field->relationship == SimpleORM_Field::one_to_one && $field->entity != null) { $entobj = $object->{$entname}; $dao = SimpleORM_Util::getDao($entity->name); $dao->delete($entobj); } elseif ($field->relationship == SimpleORM_Field::one_to_many) { $query = "delete from {$this->entity->name}_{$field->name} where {$this->entity->name} = %s"; $params = array(); $params[] = $this->getIDValue($object); SimpleORM_Connection::execute($query, $params); if ($field->entity != null) { $object2 = SimpleORM_Util::getDao($this->entity->name)->get($this->getIDValue($object)); foreach ($object2->{$entname} as $entobj) { $dao->delete($entobj); } } } } $stmt = "delete from {$this->entity->name} where {$this->entity->getID()->name} = %s"; SimpleORM_Connection::execute($stmt, array($this->getIDValue($object))); }