Skip to content

Add RowPrototypeResultSet; migrate RowGateway to populate() - #164

Draft
tyrsson wants to merge 1 commit into
resultset-array-resultsetfrom
resultset-row-prototype
Draft

Add RowPrototypeResultSet; migrate RowGateway to populate()#164
tyrsson wants to merge 1 commit into
resultset-array-resultsetfrom
resultset-row-prototype

Conversation

@tyrsson

@tyrsson tyrsson commented Aug 7, 2026

Copy link
Copy Markdown
Member
  • New RowPrototypeResultSet/RowPrototypeResultSetInterface: dedicated,
    ArrayObject-free ResultSet implementation for RowPrototypeInterface
    prototypes (e.g. RowGateway)
  • Rename RowPrototypeInterface::exchangeArray() to populate(), returning
    RowPrototypeInterface. Avoids the ArrayObject-associated vocabulary
    bleeding across the ArrayObjectResultSet/RowPrototypeResultSet split;
    whether population is mutating or returns a new instance is left as an
    implementation detail of the prototype, not the ResultSet
  • AbstractRowGateway::populate() return type widened to static to satisfy
    RowGatewayInterface's new populate() contract (behavior unchanged, it
    already returned $this)
  • RowGatewayFeature migrated from ResultSet (now ArrayObject-only) to
    RowPrototypeResultSet, calling setRowPrototype() directly

Stack created with GitHub Stacks CLIGive Feedback 💬

- New RowPrototypeResultSet/RowPrototypeResultSetInterface: dedicated,
  ArrayObject-free ResultSet implementation for RowPrototypeInterface
  prototypes (e.g. RowGateway)
- Rename RowPrototypeInterface::exchangeArray() to populate(), returning
  RowPrototypeInterface. Avoids the ArrayObject-associated vocabulary
  bleeding across the ArrayObjectResultSet/RowPrototypeResultSet split;
  whether population is mutating or returns a new instance is left as an
  implementation detail of the prototype, not the ResultSet
- AbstractRowGateway::populate() return type widened to static to satisfy
  RowGatewayInterface's new populate() contract (behavior unchanged, it
  already returned $this)
- RowGatewayFeature migrated from ResultSet (now ArrayObject-only) to
  RowPrototypeResultSet, calling setRowPrototype() directly
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant