---
title: "Introduction"
manual: "TYPO3 Explained"
version: "main"
permalink: "https://docs.typo3.org/permalink/t3coreapi:datahandler-introduction@main"
source: "ApiOverview/DataHandler/Introduction/Index.rst"
rendered: "2026-09-24T12:36:55+00:00"
---

# Introduction {#datahandler-introduction}

## Database {#datahandler-database}

The DataHandler is the class that handles **all** [data](https://docs.typo3.org/permalink/t3coreapi:datahandler-data@main)
writing to database tables configured in TCA. In addition the class handles
[commands](https://docs.typo3.org/permalink/t3coreapi:datahandler-commands@main) such as copy, move, delete. It will handle
undo/history and versioning of records and everything will be logged
to the `sys_log` table. It will make sure that write permissions are
evaluated correctly for the user trying to write to the database. Generally,
any processing specific option in the `$GLOBALS['TCA']` array is handled
by DataHandler.

Using DataHandler for manipulation of the database content in the TCA-configured
tables guarantees that the data integrity of TYPO3 is
respected. This cannot be safely guaranteed, if you write to TCA-configured
database tables directly. It will also manage the relations
to files and other records.

DataHandler requires a backend login to work. This is due to the fact that
permissions are observed (of course) and thus DataHandler needs a backend user
to evaluate against. This means you cannot use DataHandler from the
frontend scope. Thus writing to tables (such as a guestbook) will have
to be done from the frontend *without* DataHandler.

> [!NOTE]
> **See also**
>
> The features of TCA are described in the [TCA Reference](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/Index.html#start).

## Files {#datahandler-files}

DataHandler can also handle files. The file operations are normally
performed in the **Media** module where you can manage a
directory on the server by copying, moving, deleting and editing files
and directories. The file operations are managed by two Core classes,
`\TYPO3\CMS\Core\Utility\File\BasicFileUtility` and
`\TYPO3\CMS\Core\Utility\File\ExtendedFileUtility`.
