bravo/checker_bl

PHP class for service checkerbl.pro

dev-master 2017-06-04 15:32 UTC

This package is not auto-updated.

Last update: 2024-05-05 11:43:01 UTC


README

Installation

Composer

Из командной строки:

composer require bravo/checker_bl:dev-master

или в вашем composer.json

{
    "require": {
        "bravo/checker_bl": "dev-master"
    }
}

Базовое использование

<?php
require 'vendor/autoload.php';

$checker = new CheckerBl\Task(':api_key');

$result = $checker->perform('ya.ru');

$result->link(); # => http://checkerbl.pro/bl_check/Dg25PX
$result->has_detects(); # => true
$result->has_detects('uribl'); # => true
$result->has_detects(['barracuda', 'sem_fresh']); # => false
$result->detects() # ['uribl']

$result->results();
/* 
Array
(
    [_sorbs_http] => false
    [_sorbs_misc] => false
    ..........
    [uribl] => true
    [spamcop] => false
)
*/

Логирование

Вы можете передать в опции ваш класс логирования, который реализует интерфейс Psr\Log\LoggerInterface

<?php 

$logger = new YourLogger('./logs', YourLogger::DEBUG);
$checker = new CheckerBl\Task(':api_key', array(
    'logger' => $logger
));

Отложенная проверка

<?php
# ........
$response = $checker->perform('ya.ru', 'later');

//... do stuff

do{
    $response = $checker->get($response->id);
    sleep(1);
}while($response->response_code()==206);


Ошибки

При получения статуса отличного от 2** выбрасываются исключения

Имя классаОписанине
CheckerBl\ThreadsLimitExceptionПри получении статуса 429
CheckerBl\UnProcessableExceptionПри получении статуса 422. Доступен метод getErrors() который содержит массив ошибок.
CheckerBl\TimeoutExceptionПри получении статуса 408. Доступен метод getTaskId(), который вернет id созданной задачи.
CheckerBl\UnAuthorizedExceptionПри получении статуса 401.
CheckerBl\ResponseErrorПри получении статуса отличного от 2** и выше перечисленных.

Что ещё есть внутри?

Если взглянуть на API сервиса, то мы увидим примерно следующее:

{
  "bl_checker_task": {
    "id": "pxjDgB",
    "hostname": "example.com",
    "resolved_ip": "93.184.216.34",
    "results": [
      {
        "sys_name": "_sorbs_http",
        "human_name": "SORBS HTTP",
        "status": "clear"
      },
      {
        "sys_name": "_sorbs_socks",
        "human_name": "SORBS SOCKS",
        "status": "dirty"
      },
      {
        "sys_name": "sorbs_spam",
        "human_name": "SORBS Spam",
        "status": "check_error"
      }
    ]
  }
}

К каждому ключу хеша bl_checker_task вы можете обращаться напрямую вот так:

<?php 
# ....init 
$response = $checker->perform('ya.ru');
$response->hostname; # => ya.ru
$reponse['hostname']; # => ya.ru
$response->id; # pxjDgB
$responee['id']; # pxjDgB
.......