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é
|
||||
* primaire est incluse (il s'agit généralement de "id_"), la ligne
|
||||
* 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 {
|
||||
return null;
|
||||
|
@ -247,6 +250,11 @@ class CapacitorChannel {
|
|||
*
|
||||
* Si $item est modifié dans cette méthode, il est possible de le retourner
|
||||
* 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 {
|
||||
return null;
|
||||
|
|
|
@ -194,16 +194,26 @@ EOT;
|
|||
* modifier les valeurs insérées/mises à jour. De plus, $values obtient la
|
||||
* 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
|
||||
* déjà à l'identique dans le canal
|
||||
*/
|
||||
function _charge(CapacitorChannel $channel, $item, $func, ?array $args, ?array &$values=null): int {
|
||||
$this->_create($channel);
|
||||
$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(
|
||||
$channel->getSum("item", $item),
|
||||
$this->serialize($channel, $channel->getItemValues($item)));
|
||||
$this->serialize($channel, $itemValues));
|
||||
$prow = null;
|
||||
$rowIds = $this->getRowIds($channel, $row, $primaryKeys);
|
||||
if ($rowIds !== null) {
|
||||
|
@ -215,6 +225,7 @@ EOT;
|
|||
]);
|
||||
}
|
||||
|
||||
$now = date("Y-m-d H:i:s");
|
||||
$insert = null;
|
||||
if ($prow === null) {
|
||||
# création
|
||||
|
|
Loading…
Reference in New Issue