public function testProperties() { $l = new Librarian('test'); $e = new CrudEvent('test', [], $l); $e->setData([1, 2, 3]); $this->assertEquals($e->getData(), [1, 2, 3]); $e->setId(1); $this->assertEquals($e->getId(), 1); }
public function getFromFilesystem(CrudEvent $event) { $id = $event->getData(); $data = file_get_contents($this->pathForId($id)); if ($data === false) { throw new CrudException('Couldn’t fetch file "' . $this->pathForId($id) . '"'); } else { $event->setData($data); } }
public function dehydratePropertyAndUpdateIndex(CrudEvent $event) { $data = $event->getData(); // TODO: better idea to remove the index here? if (empty($data[$this->propertyName])) { return; } if (!$data[$this->propertyName] instanceof DateTime) { $datetime = new DateTime($data[$this->propertyName]); } else { $datetime = $data[$this->propertyName]; } // TODO: make format configurable? $data[$this->propertyName] = $datetime->format(DateTime::W3C); $event->setData($data); // Refresh index // TODO: is update quicker than delete/insert? Do we care? $this->db->delete($this->getTableName(), ['id' => $event->getId()]); $this->db->insert($this->getTableName(), ['id' => $event->getId(), 'datetime' => $datetime->format('Y-m-d H:i:s'), 'last_indexed' => time()]); }
public function decode(L\CrudEvent $event) { $in = $event->getData(); $data = yaml_parse($in); $event->setData($data); }
public function decodeJson(L\CrudEvent $event) { $json = $event->getData(); $data = json_decode($json, true); $event->setData($data); }