コード例 #1
0
 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();
                 }
             }
         }
     }
 }
コード例 #2
0
 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)));
 }