예제 #1
0
 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);
     }
 }
예제 #2
0
    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);