示例#1
0
 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;
 }
示例#2
0
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);
    }
}
示例#3
0
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();
}
示例#4
0
 function test_clean_database()
 {
     $db = DatabaseFactory::get_provider();
     $db->clean_database();
 }