filtre de base
This commit is contained in:
parent
f34694e12d
commit
2c7020f44d
@ -146,8 +146,11 @@ class Capacitor implements ITransactor {
|
|||||||
function chargeAll(?iterable $items, $func=null, ?array $args=null): int {
|
function chargeAll(?iterable $items, $func=null, ?array $args=null): int {
|
||||||
$count = 0;
|
$count = 0;
|
||||||
if ($items !== null) {
|
if ($items !== null) {
|
||||||
|
if ($func !== null) {
|
||||||
|
$func = func::with($func, $args)->bind($this->channel);
|
||||||
|
}
|
||||||
foreach ($items as $item) {
|
foreach ($items as $item) {
|
||||||
$count += $this->charge($item, $func, $args);
|
$count += $this->charge($item, $func);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $count;
|
return $count;
|
||||||
|
@ -444,7 +444,7 @@ class CapacitorChannel implements ITransactor {
|
|||||||
return $this->capacitor->charge($item, $func, $args, $row);
|
return $this->capacitor->charge($item, $func, $args, $row);
|
||||||
}
|
}
|
||||||
|
|
||||||
function chargeAll(iterable $items, $func=null, ?array $args=null): int {
|
function chargeAll(?iterable $items, $func=null, ?array $args=null): int {
|
||||||
return $this->capacitor->chargeAll($items, $func, $args);
|
return $this->capacitor->chargeAll($items, $func, $args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -452,23 +452,49 @@ class CapacitorChannel implements ITransactor {
|
|||||||
return $this->capacitor->discharge($reset);
|
return $this->capacitor->discharge($reset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* retourner le filtre de base: les filtres de toutes les fonctions ci-dessous
|
||||||
|
* sont fusionnées avec le filtre de base
|
||||||
|
*
|
||||||
|
* cela permet de limiter toutes les opérations à un sous-ensemble des données
|
||||||
|
* du canal
|
||||||
|
*/
|
||||||
|
function getBaseFilter(): ?array {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function verifixFilter(&$filter): void {
|
||||||
|
if ($filter !== null && !is_array($filter)) {
|
||||||
|
$primaryKeys = $this->primaryKeys ?? ["id_"];
|
||||||
|
$id = $filter;
|
||||||
|
$this->verifixId($id);
|
||||||
|
$filter = [$primaryKeys[0] => $id];
|
||||||
|
}
|
||||||
|
$filter = cl::merge($this->getBaseFilter(), $filter);
|
||||||
|
}
|
||||||
|
|
||||||
function count($filter=null): int {
|
function count($filter=null): int {
|
||||||
|
$this->verifixFilter($filter);
|
||||||
return $this->capacitor->count($filter);
|
return $this->capacitor->count($filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
function one($filter, ?array $mergeQuery=null): ?array {
|
function one($filter, ?array $mergeQuery=null): ?array {
|
||||||
|
$this->verifixFilter($filter);
|
||||||
return $this->capacitor->one($filter, $mergeQuery);
|
return $this->capacitor->one($filter, $mergeQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
function all($filter, ?array $mergeQuery=null): Traversable {
|
function all($filter, ?array $mergeQuery=null): Traversable {
|
||||||
|
$this->verifixFilter($filter);
|
||||||
return $this->capacitor->all($filter, $mergeQuery);
|
return $this->capacitor->all($filter, $mergeQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
function each($filter, $func=null, ?array $args=null, ?array $mergeQuery=null, ?int &$nbUpdated=null): int {
|
function each($filter, $func=null, ?array $args=null, ?array $mergeQuery=null, ?int &$nbUpdated=null): int {
|
||||||
|
$this->verifixFilter($filter);
|
||||||
return $this->capacitor->each($filter, $func, $args, $mergeQuery, $nbUpdated);
|
return $this->capacitor->each($filter, $func, $args, $mergeQuery, $nbUpdated);
|
||||||
}
|
}
|
||||||
|
|
||||||
function delete($filter, $func=null, ?array $args=null): int {
|
function delete($filter, $func=null, ?array $args=null): int {
|
||||||
|
$this->verifixFilter($filter);
|
||||||
return $this->capacitor->delete($filter, $func, $args);
|
return $this->capacitor->delete($filter, $func, $args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -434,7 +434,7 @@ abstract class CapacitorStorage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($func !== null) {
|
if ($func !== null) {
|
||||||
$updates = func::with($func)
|
$updates = func::with($func, $args)
|
||||||
->prependArgs([$item, $row, $prow])
|
->prependArgs([$item, $row, $prow])
|
||||||
->bind($channel)
|
->bind($channel)
|
||||||
->invoke();
|
->invoke();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user