Регистрировать объекты, которые не прошли проверку - PullRequest
0 голосов
/ 10 января 2020

Я делаю HTTP-запрос, получаю ответ и декодирую его в ассоциативный массив, например:

$httpClient = new Client();
$httpResponse = $httpClient->get($this->api->getEndpoint(), [
    'headers' => [
        'Content-Type' => 'application/json'
    ],
]);

if ($httpResponse->getStatusCode() === Response::HTTP_OK) {
    $decodedData = json_decode($httpResponse->getBody(), true);


    if (!isset($decodedData['message'])) {
        Log::warning("There is no 'message' array in response body");

        return false;
    }

Затем я передаю conten c из $ decodedData в функцию проверки, например:

$items = $decodedData['message'];
foreach ($items as $item) {
    if (!$item)
        continue;

    if (!$this->validateItem($item))
        continue;
    ...
}

Функция проверки выглядит следующим образом:

private function validateItem(array $data)
{
    $validator = Validator::make($data, [
        'id' => 'required|integer',
        'title' => 'required|string|max:255',
    ]);

    if ($validator->fails()) {
        Log::warning("Current item has not passed validation. Validation error: " . $validator->errors()->first());

        return false;
    }

    return true;
}

Как мне регистрировать информацию о плохих объектах, чтобы я мог проверить, что с ними не так в будущем?

...