PHP Classes

File: Src/add.php

Recommend this page to a friend!
  Classes of Ogbemudia Osayawe   PHP TDD Tutorial Bug Report Application   Src/add.php   Download  
File: Src/add.php
Role: Example script
Content type: text/plain
Description: Example script
Class: PHP TDD Tutorial Bug Report Application
Bug report application to show the TDD approach
Author: By
Last change:
Date: 2 years ago
Size: 1,345 bytes
 

Contents

Class file image Download
<?php declare( strict_types=1 );
require_once
__DIR__ . '/../vendor/autoload.php';

use
App\Entity\BugReport;
use
App\Repository\BugReportRepository;
use
App\Helpers\DbQueryBuilderFactory;
use
App\Database\QueryBuilder;
use
App\Logger\Logger;
use
App\Exception\BadRequestException;

if(isset(
$_POST, $_POST['add'])){
   
$reportType = $_POST['reportType'];
   
$email = $_POST['email'];
   
$link = $_POST['link'];
   
$message = $_POST['message'];

   
$bugReport = new BugReport;
   
$bugReport->setReportType($reportType);
   
$bugReport->setEmail($email);
   
$bugReport->setLink($link);
   
$bugReport->setMessage($message);

   
$logger = new Logger;
    try{
       
/** @var QueryBuilder $queryBuilder */
       
$queryBuilder = DbQueryBuilderFactory::make();
       
/** @var BugReportRepository $repository */
       
$repository = new BugReportRepository($queryBuilder);
       
/** @var BugReport $newReport */
       
$newReport = $repository->create($bugReport);
    }catch (
Throwable $exception){
       
$logger->critical($exception->getMessage(), $_POST);
        throw new
BadRequestException($exception->getMessage(), [$exception], 400);
    }

   
$logger->info(
       
'new bug report created',
        [
'id' => $newReport->getId(), 'type' => $newReport->getReportType(),]
    );
   
$bugReports = $repository->findAll();
}