private function register_on_db($cinema) { //o nome da classe é o id do banco, recupera dinamico $classname = get_class($this); $cinema->_id = $classname; $db = DatabaseFactory::get_provider(); $cinema_db = $db->find($classname); if ($cinema_db) { if ($cinema_db->hash != $cinema->hash) { $cinema->_rev = $cinema_db->_rev; //utilizado mais para ter uma nocao olhando direto no banco... $cinema->last_update = date('d/m/y H:i:s'); $db->save($cinema); //atributo utilizado para filtrar cinemas que foram atualizados para notificar clientes de atualizacao uma unica vez. //seta o valor temporariamente, não guarda no db, so para validacao $cinema->updated = 'YES'; //Log::write($cinema->name . ' tem novidades'); } } else { $cinema->last_update = date('d/m/y H:i:s'); $db->save($cinema); $cinema->updated = 'YES'; } if (!isset($cinema->updated)) { //controle so de validacao $cinema->updated = 'NO'; } return $cinema; }
function callback_subscribers($cinemas) { $cinemas_updated = base64_encode(json_encode($cinemas)); $db = DatabaseFactory::get_provider(); $subscribers = $db->get_subscribers(); foreach ($subscribers as $subscriber) { $url = $subscriber->value->callback; post_request($url, $cinemas_updated); } }
ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); $domain = 'http://' . $_SERVER['HTTP_HOST']; $root_path = realpath($_SERVER["DOCUMENT_ROOT"]); //recebe do htaccess mod_rewrite para saber quem chamou. $query_path = $_REQUEST['id']; if (is_dir("{$root_path}/{$query_path}")) { $dir = "{$root_path}/{$query_path}"; $dir_list = array(); foreach (scandir($dir) as $key => $value) { //desconsidera . e .. como diretorios if (preg_match("/^[\\w]/", $value)) { //troca a extensao do arquivo se existir para .json $name = preg_replace('/\\..+$/', '.json', $value); $url = "{$domain}/{$query_path}{$name}"; $dir_list[] = array("name" => $name, "url" => $url); } } Helper::print_json($dir_list); } else { $classname = basename($query_path, '.json'); //procura a classe no json se encontrar retorna ela... bem mais rapido que IO $db = DatabaseFactory::get_provider(); $data = $db->find($classname); if ($data) { Helper::print_json($data); return; } $object = new $classname(); $object->print_json(); }
function test_clean_database() { $db = DatabaseFactory::get_provider(); $db->clean_database(); }