예제 #1
0
 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);
 }
예제 #2
0
 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);
     }
 }
예제 #3
0
 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()]);
 }
예제 #4
0
 public function decode(L\CrudEvent $event)
 {
     $in = $event->getData();
     $data = yaml_parse($in);
     $event->setData($data);
 }
예제 #5
0
 public function decodeJson(L\CrudEvent $event)
 {
     $json = $event->getData();
     $data = json_decode($json, true);
     $event->setData($data);
 }