modifs.mineures sans commentaires
This commit is contained in:
parent
976e3674b4
commit
55501af6ff
|
@ -165,6 +165,9 @@ class CapacitorChannel {
|
||||||
* Cette méthode est utilisée par {@link Capacitor::charge()}. Si la clé
|
* Cette méthode est utilisée par {@link Capacitor::charge()}. Si la clé
|
||||||
* primaire est incluse (il s'agit généralement de "id_"), la ligne
|
* primaire est incluse (il s'agit généralement de "id_"), la ligne
|
||||||
* correspondate est mise à jour si elle existe.
|
* correspondate est mise à jour si elle existe.
|
||||||
|
*
|
||||||
|
* Retourner la clé primaire par cette méthode est l'unique moyen de
|
||||||
|
* déclencher une mise à jour plutôt qu'une nouvelle création.
|
||||||
*/
|
*/
|
||||||
function getItemValues($item): ?array {
|
function getItemValues($item): ?array {
|
||||||
return null;
|
return null;
|
||||||
|
@ -247,6 +250,11 @@ class CapacitorChannel {
|
||||||
*
|
*
|
||||||
* Si $item est modifié dans cette méthode, il est possible de le retourner
|
* Si $item est modifié dans cette méthode, il est possible de le retourner
|
||||||
* avec la clé "item" pour mettre à jour la ligne correspondante.
|
* avec la clé "item" pour mettre à jour la ligne correspondante.
|
||||||
|
*
|
||||||
|
* la création ou la mise à jour est uniquement décidée en fonction des
|
||||||
|
* valeurs calculées par {@link self::getItemValues()}. Bien que cette méthode
|
||||||
|
* peut techniquement retourner de nouvelles valeurs pour la clé primaire, ça
|
||||||
|
* risque de créer des doublons
|
||||||
*/
|
*/
|
||||||
function onCreate($item, array $rowValues, ?array $alwaysNull): ?array {
|
function onCreate($item, array $rowValues, ?array $alwaysNull): ?array {
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -194,16 +194,26 @@ EOT;
|
||||||
* modifier les valeurs insérées/mises à jour. De plus, $values obtient la
|
* modifier les valeurs insérées/mises à jour. De plus, $values obtient la
|
||||||
* valeur finale des données insérées/mises à jour
|
* valeur finale des données insérées/mises à jour
|
||||||
*
|
*
|
||||||
|
* Si $args est renseigné, il est ajouté aux arguments utilisés pour appeler
|
||||||
|
* les méthodes {@link CapacitorChannel::getItemValues()},
|
||||||
|
* {@link CapacitorChannel::onCreate()} et/ou
|
||||||
|
* {@link CapacitorChannel::onUpdate()}
|
||||||
|
*
|
||||||
* @return int 1 si l'objet a été chargé ou mis à jour, 0 s'il existait
|
* @return int 1 si l'objet a été chargé ou mis à jour, 0 s'il existait
|
||||||
* déjà à l'identique dans le canal
|
* déjà à l'identique dans le canal
|
||||||
*/
|
*/
|
||||||
function _charge(CapacitorChannel $channel, $item, $func, ?array $args, ?array &$values=null): int {
|
function _charge(CapacitorChannel $channel, $item, $func, ?array $args, ?array &$values=null): int {
|
||||||
$this->_create($channel);
|
$this->_create($channel);
|
||||||
$tableName = $channel->getTableName();
|
$tableName = $channel->getTableName();
|
||||||
$now = date("Y-m-d H:i:s");
|
|
||||||
|
$initFunc = [$channel, "getItemValues"];
|
||||||
|
$initArgs = $args;
|
||||||
|
func::ensure_func($initFunc, null, $initArgs);
|
||||||
|
$itemValues = func::call($initFunc, $item, ...$initArgs);
|
||||||
|
|
||||||
$row = cl::merge(
|
$row = cl::merge(
|
||||||
$channel->getSum("item", $item),
|
$channel->getSum("item", $item),
|
||||||
$this->serialize($channel, $channel->getItemValues($item)));
|
$this->serialize($channel, $itemValues));
|
||||||
$prow = null;
|
$prow = null;
|
||||||
$rowIds = $this->getRowIds($channel, $row, $primaryKeys);
|
$rowIds = $this->getRowIds($channel, $row, $primaryKeys);
|
||||||
if ($rowIds !== null) {
|
if ($rowIds !== null) {
|
||||||
|
@ -215,6 +225,7 @@ EOT;
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$now = date("Y-m-d H:i:s");
|
||||||
$insert = null;
|
$insert = null;
|
||||||
if ($prow === null) {
|
if ($prow === null) {
|
||||||
# création
|
# création
|
||||||
|
|
Loading…
Reference in New Issue