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); }
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(); }
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); }
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()); }