for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace BEAR\Resource;
use function in_array;
use function sprintf;
use Psr\Log\LoggerInterface as PsrLoggerInterface;
final class ProdLogger implements LoggerInterface
{
/**
* @var PsrLoggerInterface
*/
private $logger;
public function __construct(PsrLoggerInterface $logger)
$this->logger = $logger;
}
public function __invoke(ResourceObject $ro) : void
$unsafeMethod = ['post', 'put', 'patch', 'delete'];
if (! in_array($ro->uri->method, $unsafeMethod, true)) {
return;
$msg = sprintf('%s %s %s', $ro->code, $ro->uri->method, (string) $ro->uri);
$this->logger->info('request', $msg);
$msg
string
array
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: