Gestion du delete(key)
This commit is contained in:
parent
e661bf99dd
commit
2cf98451e2
39
automate.php
39
automate.php
|
@ -89,7 +89,7 @@
|
||||||
|
|
||||||
// Lancement du téléchargement
|
// Lancement du téléchargement
|
||||||
// $req = new ModuleRequest('download/phone', array('subjects'=>[200]));
|
// $req = new ModuleRequest('download/phone', array('subjects'=>[200]));
|
||||||
// $res = $req->dispatch();
|
// $res = $req->download();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -99,31 +99,26 @@
|
||||||
|
|
||||||
// RUN database
|
// RUN database
|
||||||
$db = new lightdb('testdb1');
|
$db = new lightdb('testdb1');
|
||||||
function microtime_float()
|
|
||||||
{
|
|
||||||
list($usec, $sec) = explode(" ", microtime());
|
|
||||||
return ((float)$usec + (float)$sec);
|
|
||||||
}
|
|
||||||
|
|
||||||
$a = microtime_float();
|
var_dump('INSERTING key0 to key99');
|
||||||
/* [1] INSERTION DE 1000*1000 éléments
|
|
||||||
=========================================================*/
|
|
||||||
$data = array();
|
|
||||||
for( $i = 0 ; $i < 1000 ; $i++ )
|
|
||||||
$data['key'.$i] = 'valeur'.$i;
|
|
||||||
|
|
||||||
$average = 0;
|
for( $i = 0 ; $i < 100 ; $i++ )
|
||||||
for( $i = 0 ; $i < 100 ; $i++ ){
|
echo $db->insert('key'.$i, array('data0_'.$i, 'data1_'.$i)) ? 'o' : '_';
|
||||||
$a = microtime_float();
|
|
||||||
$db->fetch('data'.$i);
|
|
||||||
$average += microtime_float()-$a;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_dump('1000 * '.strlen(json_encode($data)) );
|
|
||||||
var_dump('INSERT avg. : '.($average/100) );
|
|
||||||
|
|
||||||
/* [2] RECUPERATION DE 1000*1000 ELEMENTS
|
var_dump('FETCHING key0 : '); var_dump( $db->fetch('key0') );
|
||||||
=========================================================*/
|
var_dump('FETCHING key1 : '); var_dump( $db->fetch('key1') );
|
||||||
|
var_dump('FETCHING key2 : '); var_dump( $db->fetch('key2') );
|
||||||
|
var_dump('FETCHING key3 : '); var_dump( $db->fetch('key3') );
|
||||||
|
|
||||||
|
var_dump('DELETING key0 : '. $db->delete('key0') );
|
||||||
|
var_dump('DELETING key1 : '. $db->delete('key1') );
|
||||||
|
var_dump('DELETING key2 : '. $db->delete('key2') );
|
||||||
|
var_dump('DELETING key3 : '. $db->delete('key3') );
|
||||||
|
|
||||||
|
var_dump('FETCHING key0 : '); var_dump( $db->fetch('key0') );
|
||||||
|
var_dump('FETCHING key1 : '); var_dump( $db->fetch('key1') );
|
||||||
|
var_dump('FETCHING key2 : '); var_dump( $db->fetch('key2') );
|
||||||
|
var_dump('FETCHING key3 : '); var_dump( $db->fetch('key3') );
|
||||||
|
|
||||||
$db->close();
|
$db->close();
|
||||||
|
|
|
@ -15,6 +15,8 @@
|
||||||
private $driver;
|
private $driver;
|
||||||
private $line;
|
private $line;
|
||||||
|
|
||||||
|
private $tmp;
|
||||||
|
|
||||||
/* CONSTRUCTEUR -> CREER LES FICHIERS S'ILS N'EXISTENT PAS SINON, RECUPERE LES DONNES
|
/* CONSTRUCTEUR -> CREER LES FICHIERS S'ILS N'EXISTENT PAS SINON, RECUPERE LES DONNES
|
||||||
*
|
*
|
||||||
* @dbname<String> Nom de la base de données
|
* @dbname<String> Nom de la base de données
|
||||||
|
@ -42,7 +44,7 @@
|
||||||
$fIndex = new \SplFileObject($this->dir.'index');
|
$fIndex = new \SplFileObject($this->dir.'index');
|
||||||
$fIndex->seek(0);
|
$fIndex->seek(0);
|
||||||
|
|
||||||
$index = json_decode( $fIndex->current(), true );
|
$index = json_decode( $fIndex->fgets(), true );
|
||||||
|
|
||||||
// Si erreur de parsage, on retourne une erreur
|
// Si erreur de parsage, on retourne une erreur
|
||||||
if( is_null($index) ) return;
|
if( is_null($index) ) return;
|
||||||
|
@ -56,6 +58,7 @@
|
||||||
|
|
||||||
/* (2) On place un 'driver' sur le fichier */
|
/* (2) On place un 'driver' sur le fichier */
|
||||||
$this->driver = new \SplFileObject($this->dir.'data', 'r+');
|
$this->driver = new \SplFileObject($this->dir.'data', 'r+');
|
||||||
|
// $this->driver->setFlags( \SplFileObject::SKIP_EMPTY );
|
||||||
|
|
||||||
/* (3) On récupère le nombre de lignes */
|
/* (3) On récupère le nombre de lignes */
|
||||||
$this->line = -1;
|
$this->line = -1;
|
||||||
|
@ -148,7 +151,7 @@
|
||||||
|
|
||||||
/* (3) On récupère le contenu */
|
/* (3) On récupère le contenu */
|
||||||
$this->driver->seek($line);
|
$this->driver->seek($line);
|
||||||
$json = json_decode( $this->driver->current(), true );
|
$json = json_decode( $this->driver->fgets(), true );
|
||||||
|
|
||||||
// Si erreur de parsage
|
// Si erreur de parsage
|
||||||
if( is_null($json) )
|
if( is_null($json) )
|
||||||
|
@ -182,6 +185,29 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* SUPPRIME UNE ENTREE DE CLE DONNEE DE LA BASE DE DONNEES
|
||||||
|
*
|
||||||
|
* @key<String> Clé de l'entrée à supprimer
|
||||||
|
*
|
||||||
|
* @return status<Boolean> Retourne TRUE si tout s'est bien passé, sinon FALSE
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function delete($key){
|
||||||
|
/* (1) On vérifie l'existence de la clé */
|
||||||
|
if( !array_key_exists($key, $this->index) )
|
||||||
|
return true; // On considère que l'action souhaitée est effectuée
|
||||||
|
|
||||||
|
/* (2) On supprime la ligne de l'index */
|
||||||
|
unset( $this->index[$key] );
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* RENVOIE LES DONNEES ASSOCIEES A UN CHAMP DE RECHERCHE
|
/* RENVOIE LES DONNEES ASSOCIEES A UN CHAMP DE RECHERCHE
|
||||||
*
|
*
|
||||||
* @nomParam<typeParam> Description du param
|
* @nomParam<typeParam> Description du param
|
||||||
|
@ -189,8 +215,26 @@
|
||||||
* @return nomRetour<typeRetour> Description du retour
|
* @return nomRetour<typeRetour> Description du retour
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function filter($data){} // select() en comparant $data
|
public function filter($data){
|
||||||
public function delete($key){}
|
/* (1) Si @data est un tableau associatif */
|
||||||
|
if( is_array($data) ){
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* (2) Sinon on compare @data en tant que valeur simple */
|
||||||
|
}else{
|
||||||
|
|
||||||
|
$this->tmp = sha1( json_encode($data) );
|
||||||
|
return array_filter($this->index, array($this, 'callbackFilter'));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
protected function callbackFilter($e){ return $e['hash'] == $this->tmp; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue