public function handle(Request $request) { $this->logger->message("Creating query"); $query = new Query(); $this->logger->message("Creating form"); try { $form = (new QueryFormBuilder())->buildForm($query); } catch (\Exception $e) { throw new \Exception("Cannot build form", 0, $e); } $this->logger->message("Submitting request to form"); try { $form->submit($request->getQuery()->all()); } catch (\Exception $e) { throw new \Exception("Cannot submit request to form", 0, $e); } if ($form->isValid()) { $this->logger->message("The form is valid"); $this->logger->message("Creating query handler"); try { $queryHandler = new QueryHandler($this->pdoBuilder->getPDO()); } catch (\Exception $e) { throw new \Exception("Cannot create query handler", 0, $e); } $queryHandler->setLogger($this->logger); $this->logger->message("Executing query"); $data = $queryHandler->execute($query); try { return new JsonResponse($data, 200); } catch (\Exception $e) { throw new \Exception("Cannot create response", 0, $e); } } $this->logger->message("The form is not valid"); try { return new JsonResponse($form->getErrors(), 400); } catch (\Exception $e) { throw new \Exception("Cannot create response", 0, $e); } }
exit('You are not allowed to access this file. Check ' . basename(__FILE__) . ' for more information.'); } require_once __DIR__ . '/../vendor/autoload.php'; use DS3\Framework\HTTP\Request; use DS3\Framework\PDO\FilePDOBuilder; use DS3\Framework\HTTP\JsonResponse; use DS3\Framework\Logger\Logger; use DS3\Framework\Filesystem\File; use DS3\Framework\HTTP\JsonHandler; $logger = new Logger(new File(__DIR__ . '/../app/dev.log')); try { $logger->message("-------------------------------------------------------\n"); $logger->message(sprintf('[%s] : Started dbCharts', date(DATE_ATOM))); // --- Request $logger->message("Creating request...", true); $request = Request::fromGlobals(); $logger->done(); $logger->message('Handling request ' . "`{$request->getMethod()} {$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}`"); // --- PDO configuration $pdo_cfg_path = '/../app/pdo.cfg'; $logger->message("Loading PDO configuration from file '" . $pdo_cfg_path . "'...", true); $pdo_config = new FilePDOBuilder(__DIR__ . $pdo_cfg_path); $logger->done(); // --- Controller $logger->message("Creating controller...", true); $controller = new \DS3\Application\Controller($pdo_config, $logger); $logger->done(); // --- Response $logger->message("Creating response...", true); try { $response = $controller->handle($request);