示例#1
0
 public function updatePatch(Patch $originalPatch, Patch $newPatch)
 {
     $fields = array_diff_assoc($originalPatch->dump(), $newPatch->dump());
     $fields['id'] = $originalPatch->getId();
     $query = sprintf(static::UPDATE_PATCH, $this->buildSet($fields));
     $this->query->write($query, $fields);
 }
示例#2
0
 private function isValidTable(Patch $patch)
 {
     if (is_null($this->table)) {
         $this->table = $patch->getTable();
         if (!is_null($patch->getId())) {
             $this->stored = true;
         }
         return true;
     }
     return $this->table == $patch->getTable();
 }
示例#3
0
 public function updatePatch(Patch $originalPatch, Patch $newPatch)
 {
     $fields = array_diff_assoc($newPatch->dump(), $originalPatch->dump());
     $fields['id'] = $originalPatch->getId();
     $table = $originalPatch->getTable();
     $tablePatch = $originalPatch->getPatch();
     list($patches, $filepath) = $this->loadPatches($table);
     $currentPatch = $patches[$tablePatch];
     $mergedPatches = array_merge($currentPatch, $fields);
     $patches[$tablePatch] = $mergedPatches;
     $encoded = json_encode($patches, JSON_PRETTY_PRINT);
     $this->filesystem->delete($filepath);
     $this->filesystem->write($filepath, $encoded);
 }
示例#4
0
 public function testGets()
 {
     $raw = ['table' => 'someTable', 'patch' => 'somePatch', 'query' => 'someQuery', 'rollback' => 'someRollback'];
     $patch = new Patch($raw);
     $this->assertEquals(null, $patch->getId());
     $this->assertEquals(1234, $patch->getId(1234));
     $this->assertEquals($raw['table'], $patch->getTable());
     $this->assertEquals($raw['patch'], $patch->getPatch());
     $this->assertEquals($raw['query'], $patch->getQuery());
     $this->assertEquals($raw['rollback'], $patch->getRollback());
     $this->assertEquals($raw, $patch->dump());
 }