for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace DansMaCulotte\Monetico\Responses;
use DansMaCulotte\Monetico\Exceptions\Exception;
abstract class AbstractResponse
{
/** @var array */
const REQUIRED_KEYS = [
'cdr' => 'returnCode',
'lib' => 'description',
'version' => 'version',
'reference' => 'reference',
];
/** @var string */
public $returnCode;
public $description;
public $version;
public $reference;
/**
* AbstractResponse constructor.
* @param array $data
* @throws Exception
*/
public function __construct(array $data)
$this->validateRequiredKeys($data);
$this->setDataRequiredKeys($data);
}
* @return array
protected function getRequiredKeys(): array
return self::REQUIRED_KEYS;
private function validateRequiredKeys(array $data): void
$keys = $this->getRequiredKeys();
foreach ($keys as $key => $value) {
if (!in_array($key, array_keys($data))) {
throw Exception::missingResponseKey($key);
private function setDataRequiredKeys(array $data)
foreach ($data as $key => $value) {
if (isset($keys[$key])) {
$method = $keys[$key];
$this->$method = $value;
* @param string $eptCode
* @param string $companyCode
* @return bool
public function validateSeal(string $eptCode, string $companyCode): bool
$companyCode
If this is a false-positive, you can also ignore this issue in your code via the ignore-unused annotation
ignore-unused
public function validateSeal(string $eptCode, /** @scrutinizer ignore-unused */ string $companyCode): bool
This check looks for parameters that have been defined for a function or method, but which are not used in the method body.
$eptCode
public function validateSeal(/** @scrutinizer ignore-unused */ string $eptCode, string $companyCode): bool
return false;
This check looks for parameters that have been defined for a function or method, but which are not used in the method body.