Renamed. The legacy
DataTableObjectrenderer DTO has been retired with Data Storage 2.0. Filters and code that used to receive aDataTableObjectnow receive aDataTablemodel (TS\WonderfulRelations\System\DataTable\Models\DataTable). The runtime render path goes throughDataTableRuntimeRendererand, for cached plans, through theHotRendererinSystem\DataStorage\Render\.
What you can still do from a filter
Most filter code that used to mutate a DataTableObject still works on
the DataTable model — the most common operations remain:
add_script_object( ScriptObject $script )— attach a JS module that runs when the table boots.add_button( … ),add_column( … ),add_new_action( … )— extend the table programmatically.get_settings()— read the configured options bag.
Building a DataTable Programmatically
The recommended path is to let DataTableFactory build the instance and
then mutate it through filters or direct calls:
use TS\WonderfulRelations\System\DataTable\Factories\Models\DataTableFactory;
$factory = new DataTableFactory( /* injected dependencies */ );
$datatable = $factory->build( $dto );For most child plugins you do not construct a DataTableFactory
yourself — pick the existing DataTable up via
Executor::get_results() of the underlying query, or hook into the
filter shown above.
