@kolossus

Как в yii2 в консоли перехватить ошибку http client?

Добрый день!

В Yii2 консольное приложение использует официальный HTTP клиент (описан тут - https://habrahabr.ru/post/304584/)

class SocketController extends Controller
{
    public function actionIndex() {
        $response = $this->client->createRequest()
                ->setFormat(Client::FORMAT_URLENCODED)
                ->setUrl($URL)
                ->setOptions([ 'timeout' => 5 ])
                ->send();
    }
}

Вызываем - ./yii socket
При тайм-ауте вываливается с ошибкой.
Exception 'yii\httpclient\Exception' with message 'Curl error: #28 - Operation timed out after 5001 milliseconds with 0 bytes received'

in /www/project/vendor/yiisoft/yii2-httpclient/CurlTransport.php:57

Если в web-приложении можно установить обработчик ошибок в конфиге -
'errorHandler' => [
            'errorAction' => 'site/error',
        ],

то в консольном приложении это не работает -
Setting unknown property: yii\console\ErrorHandler::errorAction

Как перехватить ошибку, чтоб не вываливался в консоль, а как-то можно было обработать, что-то сделать и т.п.?

Спасибо!
  • Вопрос задан
  • 1303 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы