@phpcoder81

Как избавиться от проверок аргументов?

Мужики, в каждом методе надоело постоянно проверять входные переменные.
Можно ли, как-то оптимизировать или сократить код?
public function send($id, $parent_id, $name, array $data){
  if(empty($id) || empty($parent_id) || empty($name)){
    //Exception
  }
  //ok
}

то есть, очень часто приходится вот это использовать, тк без этих проверок что-то может пойти не так. Как минимум варнинги, если не отправить какой-то аргумент.
  • Вопрос задан
  • 51 просмотр
Решения вопроса 1
Immortal_pony
@Immortal_pony Куратор тега PHP
1. Выкинуть лишние проверки из функции
2. Заставить PHP кидать Exception, а не waning'и. Примернно так:
set_error_handler(function ($severity, $message, $file, $line) {
    if (!(error_reporting() & $severity)) {
        return;
    }
    throw new ErrorException($message, 0, $severity, $file, $line);
});


3. В удобном месте поставить обаботку Exception'ов
try {
   // do something
   send($id, $parentId, $name, $data)
} catch (\Throwable $e) {
    // handle error
};
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dimoff66
Кратко о себе: Я есть
Передавать аргументы массивом через compact, в функции проверять в цикле, если все ок - извлекать через extract
Ответ написан
Ваш ответ на вопрос

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

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