/** * Run arbitrary DQL and display results * * Any DQL queries passed after the parameters will be executed, the results will be output: * * doctrine:dql --limit 10 'SELECT a FROM Neos\Flow\Security\Account a' * * @param integer $depth How many levels deep the result should be dumped * @param string $hydrationMode One of: object, array, scalar, single-scalar, simpleobject * @param integer $offset Offset the result by this number * @param integer $limit Limit the result to this number * @return void * @throws \InvalidArgumentException */ public function dqlCommand($depth = 3, $hydrationMode = 'array', $offset = null, $limit = null) { if (!$this->isDatabaseConfigured()) { $this->outputLine('DQL query is not possible, the driver and host backend options are not set in /Configuration/Settings.yaml.'); $this->quit(1); } $dqlStatements = $this->request->getExceedingArguments(); $hydrationModeConstant = 'Doctrine\\ORM\\Query::HYDRATE_' . strtoupper(str_replace('-', '_', $hydrationMode)); if (!defined($hydrationModeConstant)) { throw new \InvalidArgumentException('Hydration mode "' . $hydrationMode . '" does not exist. It should be either: object, array, scalar or single-scalar.'); } foreach ($dqlStatements as $dql) { $resultSet = $this->doctrineService->runDql($dql, constant($hydrationModeConstant), $offset, $limit); Debug::dump($resultSet, $depth); } }