Пример #1
0
 public function deleteFromFilesystem(CrudEvent $event)
 {
     $id = $event->getData();
     if (file_exists($this->pathForId($id))) {
         unlink($this->pathForId($id));
     }
     clearstatcache();
 }
Пример #2
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);
 }
Пример #3
0
 public function onPut(CrudEvent $event)
 {
     $data = $event->getData();
     $this->db->delete($this->getTableName(), ['id' => $event->getId()]);
     if (!isset($data[$this->propertyName])) {
         return;
     }
     $this->db->insert($this->getTableName(), ['id' => $event->getId(), 'content' => $data[$this->propertyName], 'last_indexed' => time()]);
 }
Пример #4
0
 public function onPut(CrudEvent $event)
 {
     $data = $event->getData();
     $this->db->delete($this->getTableName(), ['id' => $event->getId()]);
     if (!isset($data[$this->propertyName])) {
         return;
     }
     $parts = parse_url($data[$this->propertyName]);
     $this->db->insert($this->getTableName(), ['id' => $event->getId(), 'raw' => $data[$this->propertyName], 'scheme' => @($parts['scheme'] ?: ''), 'domain' => @($parts['host'] ?: ''), 'port' => @($parts['port'] ?: ''), 'path' => @($parts['path'] ?: ''), 'fragment' => @($parts['fragment'] ?: ''), 'last_indexed' => time()]);
 }
Пример #5
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()]);
 }
Пример #6
0
 public function decode(L\CrudEvent $event)
 {
     $in = $event->getData();
     $data = yaml_parse($in);
     $event->setData($data);
 }
Пример #7
0
 public function onPutEvent(CrudEvent $event)
 {
     $data = $event->getData();
     $id = $event->getId();
     return $this->updateIndex($data, $id);
 }
Пример #8
0
 public function decodeJson(L\CrudEvent $event)
 {
     $json = $event->getData();
     $data = json_decode($json, true);
     $event->setData($data);
 }