v0.29.0
What's Changed
- Fix DataTable builder id nullability by @pentiminax in #124
- Remove unreachable else branch in DefaultRowMapper date formatting by @pentiminax in #125
- Remove dead ActionColumn constructor fields by @pentiminax in #126
- Refactor column serialization delegation by @pentiminax in #127
- Consolidate 7 extension loaders into ExtensionRegistry by @pentiminax in #128
- Simplify datatable response handling by @pentiminax in #129
- Unify extension configuration in
AbstractDataTableby @pentiminax in #130 - Refactor
AbstractDataTableinitialization logic by @pentiminax in #131 - Remove
ColumnDtoand refactor column logic for direct property-base… by @pentiminax in #132 - Edit Action Column by @pentiminax in #133
Full Changelog: v0.28.0...v0.29.0
Upgrade Guide
AbstractDataTable provider hook renamed
AbstractDataTable no longer uses getDataProvider() as the extension hook for manual providers.
Use createDataProvider() instead:
use Pentiminax\UX\DataTables\Contracts\DataProviderInterface;
use Pentiminax\UX\DataTables\DataProvider\ArrayDataProvider;
protected function createDataProvider(): ?DataProviderInterface
{
return new ArrayDataProvider($rows, $this->createRowMapper());
}What changed:
- override
createDataProvider()instead ofgetDataProvider() - use
createRowMapper()instead ofrowMapper() getDataProvider()is now a public façade that returns the resolved providergetDataTable()is now the canonical rendering entrypoint; manual calls toprepareForRendering()are no longer required for normal rendering
Unify extension configuration on configureExtensions()
AbstractDataTable no longer supports overriding configureButtonsExtension(),
configureColumnControlExtension(), or configureSelectExtension().
Configure every extension from configureExtensions() instead:
use Pentiminax\UX\DataTables\Enum\ButtonType;
use Pentiminax\UX\DataTables\Model\DataTableExtensions;
use Pentiminax\UX\DataTables\Model\Extensions\ButtonsExtension;
use Pentiminax\UX\DataTables\Model\Extensions\SelectExtension;
public function configureExtensions(DataTableExtensions $extensions): DataTableExtensions
{
return $extensions
->addExtension(new ButtonsExtension([ButtonType::CSV]))
->addExtension(new SelectExtension());
}If you previously customized Buttons, Column Control, or Select via the removed hooks,
migrate that logic into configureExtensions().