@bighoc
php/javascript developer

Метод перехватывающий вызов методов, вызывающий их и отдающий результат?

Добрый день, я работаю с Stripe API, написал для себя небольшую оболочку.
И на данный момент мне приходиться каждый метод класса реализовывать как-то так:
public function someOne(){
try {
 Мой код  
}catch(\Stripe\Error\Card $e) {
  // Since it's a decline, \Stripe\Error\Card will be caught
  $body = $e->getJsonBody();
  $err  = $body['error'];

  print('Status is:' . $e->getHttpStatus() . "\n");
  print('Type is:' . $err['type'] . "\n");
  print('Code is:' . $err['code'] . "\n");
  // param is '' in this case
  print('Param is:' . $err['param'] . "\n");
  print('Message is:' . $err['message'] . "\n");
} catch (\Stripe\Error\InvalidRequest $e) {
  // Invalid parameters were supplied to Stripe's API
} catch (\Stripe\Error\Authentication $e) {
  // Authentication with Stripe's API failed
} catch (\Stripe\Error\ApiConnection $e) {
  // Network communication with Stripe failed
} catch (\Stripe\Error\Base $e) {
  // Display a very generic error to the user, and maybe send

} catch (Exception $e) {
  // Something else happened, completely unrelated to Stripe
}
}


Конечно я понимаю что это безобразие.
Понимаю что нужно делать вызов центролизованно через один метод, но без костылей пока решение не вижу.
Буду благодарен за подсказку к решению.
  • Вопрос задан
  • 172 просмотра
Пригласить эксперта
Ответы на вопрос 1
Denormalization
@Denormalization
Можно посмотреть как сделана обертка тут https://github.com/laravel/cashier

Конкретно вот тут:
https://github.com/laravel/cashier/blob/5.0/src/La...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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