Skip to content

contract: appendObjectsRaw() and purgeExpiredObjectsRaw() join ObjectServiceInterface; sweep the fleet test doubles #3406

Description

@rubenvdlinde

ObjectServiceInterface gains two methods for high-volume writers (the traffic-analytics collector):

public function appendObjectsRaw(array $objects, string|int $register, string|int $schema): int;
public function purgeExpiredObjectsRaw(string|int $register, string|int $schema): int;

Every class that implements ObjectServiceInterface must declare both or it fatals at class load. The same sweep as #2543 applies; the doubles it named are the ones affected again:

  • pipelinq tests/Stubs/Service/ObjectService.php, with its paired tests/Stubs/Contract/ObjectServiceInterface.php
  • shillinq tests/Unit/Service/Support/InMemoryObjectServiceStub.php and DuckObjectServiceAdapter.php
  • docudesk (filinq) tests/stubs/OpenRegisterStubs.php for parity only; it implements nothing and cannot fatal

createMock() sites are unaffected: a generated mock tracks whatever the interface declares.

The break lands on the conduction/hydra-gates release that carries the updated hydra-gates/contracts/ObjectServiceInterface.php, not on the openregister merge, because leaf apps read the contract from vendor/. Land the doubles before that release, or pin.

Both methods skip RBAC, multitenancy, validation, the audit trail, lifecycle events, the search index, relations and files by design; a double may implement them as a plain array append and a no-op purge.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

triageAwaiting triage

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions