Wszystkie prawa autorskie zastrzeżone przez Design by Malina (DbM)
Ta biblioteka rozszerza możliwości generowania tabel z paginacją i AJAX w aplikacjach PHP. Obsługuje dwa tryby:
- PHP mode – cała tabela renderowana jest na serwerze i zwracana jako HTML.
- AJAX mode – dane i widoki (thead, tbody, paginacja) są zwracane jako JSON, a następnie renderowane przez JS.
Pozwala to na elastyczne i wydajne zarządzanie dużymi zestawami danych.
W katalogu _Documents/Database
znajduje się gotowy plik SQL.
Zaimportuj go do swojej instancji MySQL/MariaDB:
mysql -u root -p dbm_datatables < _Documents/Database/dbm_datatables.sql
W katalogu src/Datatable
znajduje się plik DatabaseAdapter.php
.
Adapter mapuje App\Core\Interfaces\DatabaseInterface
na interfejs biblioteki DataTables.
W katalogu src/Core/Classes
znajduje się klasa Database
, która implementuje interfejs DatabaseInterface
i odpowiada za konfigurację bazy (DSN, użytkownik, hasło).
Upewnij się, że Twoja klasa AppDb jest poprawnie skonfigurowana (połączenie z bazą).
$appDb = new Database(/* host, user, pass, db */);
$dbAdapter = new DatabaseAdapter($appDb);
W katalogu src/Datatable
znajduje się plik BlogConfigDataTable.php.
To on definiuje źródło danych (tabela dbm_article) oraz mapowania kolumn.
$config = new BlogConfigDataTable($dbAdapter);
Wszystkie ustawienia potrzebne do działania DataTables PHP znajdują się w pliku ConfigDataTable
.
W przykładowej aplikacji DataTables można osadzić w kontrolerze.
W katalogu src/Controller
znajduje się DemoController
, którego metoda run()
przygotowuje dane dla widoku.
index.php:
use App\Controller\DemoController;
use Dbm\DataTables\Src\Renderers\DataTableRenderer;
// === Run ===
$demo = new DemoController();
extract($demo->run());
// === Render ===
$datatableRenderer = new DataTableRenderer();
echo $datatableRenderer->renderDataTable(
$dt_records,
$dt_sider,
$dt_config
);
DemoController.php - Metoda uruchomienia DataTables PHP w zewnętrznej aplikacji
public function run(): array
{
$params = $this->request->getQueryParams();
$dtParams = $this->datatableParams->fromRequest($params);
$dtResult = $this->dataTable
->withParams($dtParams)
->paginate($this->configDataTable);
return [
'dt_records' => $dtResult->records,
'dt_sider' => $dtResult->sider,
'dt_config' => $this->configDataTable,
'dt_mode' => $this->configDataTable->getMode(),
'dt_url' => $this->configDataTable->getUrl(),
'dt_query' => $this->configDataTable->getLastBuiltQuery(),
];
}
Dzięki temu logika (pobranie danych, paginacja, filtrowanie) jest w kontrolerze, a renderowanie w pliku aplikacji i szablonie.
Więcej szczegółów znajduje się pod adresem: README
Kompletny przykład integracji DataTables w PHP z funkcjonalnościami CRUD (Create, Read, Update, Delete). Projekt pokazuje jak zbudować dynamiczną tabelę danych, która obsługuje filtrowanie, sortowanie, paginację oraz dodawanie, edycję i usuwanie rekordów. Praktyczny przykład użycia DataTables jako narzędzia do CRUD w aplikacjach webowych.
Wystarczy tylko skonfigurować bibliotekę, a cała obsługa danych dzieje się automatycznie.