modifs.mineures sans commentaires

This commit is contained in:
Jephté Clain 2024-05-26 22:56:28 +04:00
parent 58a037bd98
commit 1bf1fdd814
2 changed files with 72 additions and 4 deletions

View File

@ -82,6 +82,31 @@ class cl {
return $default; return $default;
} }
/**
* retourner un tableau construit à partir des clés de $keys
* - [$key => $skey] --> $dest[$key] = self::get($array, $skey)
* - [$key => null] --> $dest[$key] = null
* - [$key] --> $dest[$key] = self::get($array, $key)
* - [null] --> NOP
*/
static final function select($array, ?array $keys): array {
$selected = [];
$index = 0;
foreach ($keys as $key => $skey) {
if ($key === $index) {
$index++;
if ($skey === null) continue;
$value = self::get($array, $skey);
$key = $skey;
} else {
if ($skey === null) $value = null;
else $value = self::pget($array, $skey);
}
$selected[$key] = $value;
}
return $selected;
}
/** /**
* si $array est un array ou une instance de ArrayAccess, créer ou modifier * si $array est un array ou une instance de ArrayAccess, créer ou modifier
* l'élément dont la clé est $key * l'élément dont la clé est $key
@ -130,6 +155,15 @@ class cl {
return $default; return $default;
} }
/**
* retourner la dernière valeur de $array ou $default si le tableau est null
* ou vide
*/
static final function last($array, $default=null) {
if (is_array($array)) return $array[array_key_last($array)];
return $default;
}
############################################################################# #############################################################################
/** /**
@ -236,6 +270,38 @@ class cl {
return $result; return $result;
} }
/**
* retourner un tableau construit à partir des chemins de clé de $pkeys
* ces chemins peuvent être exprimés de plusieurs façon:
* - [$key => $pkey] --> $dest[$key] = self::pget($array, $pkey)
* - [$key => null] --> $dest[$key] = null
* - [$pkey] --> $dest[$key] = self::pget($array, $pkey)
* avec $key = implode(".", $pkey))
* - [null] --> NOP
*/
static final function pselect($array, ?array $pkeys): array {
$selected = [];
$index = 0;
foreach ($pkeys as $key => $pkey) {
if ($key === $index) {
$index++;
if ($pkey === null) continue;
if (!is_array($pkey)) $pkey = explode(".", strval($pkey));
$value = self::pget($array, $pkey);
$key = implode(".", $pkey);
} else {
if ($pkey === null) {
$value = null;
} else {
if (!is_array($pkey)) $pkey = explode(".", strval($pkey));
$value = self::pget($array, $pkey);
}
}
$selected[$key] = $value;
}
return $selected;
}
/** /**
* modifier la valeur au chemin de clé $keys dans le tableau $array * modifier la valeur au chemin de clé $keys dans le tableau $array
* *

View File

@ -7,6 +7,8 @@ namespace nur\sery\db;
class CapacitorChannel { class CapacitorChannel {
const NAME = null; const NAME = null;
const TABLE_NAME = null;
const EACH_COMMIT_THRESHOLD = 100; const EACH_COMMIT_THRESHOLD = 100;
static function verifix_name(?string $name): string { static function verifix_name(?string $name): string {
@ -27,6 +29,10 @@ class CapacitorChannel {
return $this->name; return $this->name;
} }
function getTableName(): string {
return static::TABLE_NAME ?? ($this->name."_channel");
}
/** /**
* @var ?int nombre maximum de modifications dans une transaction avant un * @var ?int nombre maximum de modifications dans une transaction avant un
* commit automatique dans {@link Capacitor::each()}. Utiliser null pour * commit automatique dans {@link Capacitor::each()}. Utiliser null pour
@ -38,10 +44,6 @@ class CapacitorChannel {
return $this->eachCommitThreshold; return $this->eachCommitThreshold;
} }
function getTableName(): string {
return $this->name."_channel";
}
protected $created; protected $created;
function isCreated(): bool { function isCreated(): bool {