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
|
||||
// $req = new ModuleRequest('download/phone', array('subjects'=>[200]));
|
||||
// $res = $req->dispatch();
|
||||
// $res = $req->download();
|
||||
|
||||
|
||||
|
||||
|
@ -99,31 +99,26 @@
|
|||
|
||||
// RUN database
|
||||
$db = new lightdb('testdb1');
|
||||
function microtime_float()
|
||||
{
|
||||
list($usec, $sec) = explode(" ", microtime());
|
||||
return ((float)$usec + (float)$sec);
|
||||
}
|
||||
|
||||
$a = microtime_float();
|
||||
/* [1] INSERTION DE 1000*1000 éléments
|
||||
=========================================================*/
|
||||
$data = array();
|
||||
for( $i = 0 ; $i < 1000 ; $i++ )
|
||||
$data['key'.$i] = 'valeur'.$i;
|
||||
var_dump('INSERTING key0 to key99');
|
||||
|
||||
$average = 0;
|
||||
for( $i = 0 ; $i < 100 ; $i++ ){
|
||||
$a = microtime_float();
|
||||
$db->fetch('data'.$i);
|
||||
$average += microtime_float()-$a;
|
||||
}
|
||||
for( $i = 0 ; $i < 100 ; $i++ )
|
||||
echo $db->insert('key'.$i, array('data0_'.$i, 'data1_'.$i)) ? 'o' : '_';
|
||||
|
||||
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();
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
private $driver;
|
||||
private $line;
|
||||
|
||||
private $tmp;
|
||||
|
||||
/* CONSTRUCTEUR -> CREER LES FICHIERS S'ILS N'EXISTENT PAS SINON, RECUPERE LES DONNES
|
||||
*
|
||||
* @dbname<String> Nom de la base de données
|
||||
|
@ -42,7 +44,7 @@
|
|||
$fIndex = new \SplFileObject($this->dir.'index');
|
||||
$fIndex->seek(0);
|
||||
|
||||
$index = json_decode( $fIndex->current(), true );
|
||||
$index = json_decode( $fIndex->fgets(), true );
|
||||
|
||||
// Si erreur de parsage, on retourne une erreur
|
||||
if( is_null($index) ) return;
|
||||
|
@ -56,6 +58,7 @@
|
|||
|
||||
/* (2) On place un 'driver' sur le fichier */
|
||||
$this->driver = new \SplFileObject($this->dir.'data', 'r+');
|
||||
// $this->driver->setFlags( \SplFileObject::SKIP_EMPTY );
|
||||
|
||||
/* (3) On récupère le nombre de lignes */
|
||||
$this->line = -1;
|
||||
|
@ -148,7 +151,7 @@
|
|||
|
||||
/* (3) On récupère le contenu */
|
||||
$this->driver->seek($line);
|
||||
$json = json_decode( $this->driver->current(), true );
|
||||
$json = json_decode( $this->driver->fgets(), true );
|
||||
|
||||
// Si erreur de parsage
|
||||
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
|
||||
*
|
||||
* @nomParam<typeParam> Description du param
|
||||
|
@ -189,8 +215,26 @@
|
|||
* @return nomRetour<typeRetour> Description du retour
|
||||
*
|
||||
*/
|
||||
public function filter($data){} // select() en comparant $data
|
||||
public function delete($key){}
|
||||
public function filter($data){
|
||||
/* (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