2025/10/08
< 2025
Jump to navigation
Jump to search
EngDbExport is calling Schema::FromParams(), which isn't defined in cSchema's clade family; trying to figure out what the correct call is.
- The function is defined in ToSchema, which is not a parent of Schema.
- It's expecting to initialize an object with a Go() function. The
cSchemaclass does in fact have that method, and appears to be what we want, so the question is how to create or access the object. - Apparently a
cSchemaobject is normally created usingInputRq::FromItemPiece(). - That, however, is for use when we're still parsing the input; this is a different context. We just want to pass it some already-known parameters.
- Therefore: we probably need to make a new alt-constructor.
- To investigate: what does FromItemPiece(ItemIface $oItem, PieceIface $oPiece) do? Tentative answer:
- If
$oPiecehas a value, parses it withParseInputArgs($oPiece->GetExtras()); otherwise, fetches a default. Either way, the value ends up in$sVal. - Calls
WithItemValue($oItem,$sVal), which does:$this->Item($oItem);$this->ParseInputString($sValue);
- If
2025-10-27
I think since the 8th I did a bunch of refactoring which now makes the solution obvious (it's probably what I had in mind when I did the refactoring): EngDbExport just needs to use the ToSchema iface/trait. This now works.