Debugging 

Kitodo.Presentation allows developers to debug their code by calling the debug functions, which outputs in a human-readable format.

Database Queries 

The SQL queries executed by the database connection can be logged by calling the activateDebugMode() function from the repositories. This will output the queries in the frontend, which can be useful for debugging and optimizing database interactions.

public function activateDebugMode(): void
{
    $this->debug = true;
}
Copied!
protected function debugQuery(QueryInterface $query): void
{
    if ($this->debug) {
        $typo3DbQueryParser = GeneralUtility::makeInstance(Typo3DbQueryParser::class);
        $queryBuilder = $typo3DbQueryParser->convertQueryToDoctrineQueryBuilder($query);
        DebuggerUtility::var_dump($queryBuilder->getSQL());
        DebuggerUtility::var_dump($queryBuilder->getParameters());
    }
}
Copied!
protected function debugQueryBuilder(QueryBuilder $queryBuilder): void
{
    if ($this->debug) {
        DebuggerUtility::var_dump($queryBuilder->getSQL());
        DebuggerUtility::var_dump($queryBuilder->getParameters());
    }
}
Copied!

Fluid Templates 

The Fluid templates can be debugged by calling the activateDebugMode() function in the controller, which outputs the variables in a human-readable format. This can be useful for debugging the data passed to the templates and the logic within the templates.

protected function activateDebugMode(): void
{
    $this->view->assign('debugActive', true);
}
Copied!