Files
2026-03-11 15:57:27 +01:00

46 lines
1.3 KiB
PHP

<?php
namespace WordPress\DataLiberation\EntityReader;
/**
* The Entity Reader ingests content from a source and breaks it down into
* individual "entities" that WordPress understands - posts, comments, metadata, etc.
*/
interface EntityReader {
/**
* Gets the current entity being processed.
*
* @return ImportedEntity|false The current entity, or false if none available
*/
public function get_entity();
/**
* Advances to the next entity in the source content.
*
* This is where each data source implements its own logic for parsing the bytes
* and extracting the next meaningful piece of content.
*
* @return bool Whether we successfully moved to the next entity
*/
public function next_entity();
/**
* Checks if we've processed everything from the source.
*
* @return bool Whether we've processed everything from the source
*/
public function is_finished(): bool;
/**
* Returns a cursor position that can be used to resume processing later.
*
* This allows for processing large imports in chunks without losing your place.
* Not all readers support this yet.
*
* @TODO: Define a general interface for entity readers.
* @return string Position marker for resuming later
*/
public function get_reentrancy_cursor();
}