for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/*
* This file is part of the "Kata 1" package.
*
* Copyright (c) Daniel González
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
* @author Daniel González <[email protected]>
*/
namespace App\Negociation\Handler;
use Negotiation\Negotiator;
use Component\Http\JsonResponse;
use Component\Http\Request;
use Component\Http\Response;
/**
* ResponseHandler.
class ResponseHandler
{
* @var Negotiator
protected $negotiator;
* @param Negotiator $negotiator
public function __construct(Negotiator $negotiator)
$this->negotiator = $negotiator;
}
* @param Request $request
* @param array $data
* @param int $status
* @return Response
public function negociate(Request $request, array $data = [], $status = Response::HTTP_OK)
$acceptHeader = $request->getHeader('Accept') ? $request->getHeader('Accept') : 'application/json';
$priorities = ['application/json', 'text/html; charset=UTF-8'];
$mediaType = $this->negotiator->getBest($acceptHeader, $priorities);
$value = $mediaType->getValue();
if ($value == 'text/html; charset=UTF-8') {
return new Response(print_r($data, true), $status);
return new JsonResponse($data, $status);
$data
array
string
It seems like the type of the argument is not accepted by the function/method which you are calling.
In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.
We suggest to add an explicit type cast like in the following example:
function acceptsInteger($int) { } $x = '123'; // string "123" // Instead of acceptsInteger($x); // we recommend to use acceptsInteger((integer) $x);
It seems like the type of the argument is not accepted by the function/method which you are calling.
In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.
We suggest to add an explicit type cast like in the following example: