more robust creation/modification API
closes #8 (closed), #21 (closed), !49
Zkusil jsem nahodit prototyp řešení pro #8 (closed), #21 (closed), !49 (a do budoucna asi i #14).
Z Modifications
a Table::save()
se stává interní API, veřejné metody new()
a edit()
rovnou ukládají změny a vracejí vytvořený/upravený Row
. Díky vlastnostem PHP 8.0 a 8.1 je možné v obou metodách přijímat všechny sloupce a pohodlně rozlišit ty, u kterých uživatel nastavuje nějakou hodnotu. S pojmenovanými parametry je to pak nádhera:
$updatedRow = $table->edit($primaryKeyOrRow, columnA: 'newValue', columnE: 'newValue');
todo:
-
Přejmenovat new()
👉 create()
? Připadá mi to lepší, protože sloveso, což se projevuje hned v následujícím bodě: -
Úpravy výše vedly k odstranění metody newEmpty()
, pro kterou ovšem máme use case zejména při vytváření/editaci záznamu, který může, ale nemusí existovat. Pro tento use case bych vytvořil metodueditOrCreate()
, jejímž příjemným bonusem je, že bude moci být atomická.
Edited by Jiří Pudil