Size: a a a

2020 January 14

АR

Андрей Ruvik in phpGeeks
Maksim Melnichuk
и так придется вставлять в каждый метод
вы хотите избежать дублирования 2ух строк, чтоб потом лечиться от костылей ?)
источник

MM

Maksim Melnichuk in phpGeeks
Андрей Ruvik
вы хотите избежать дублирования 2ух строк, чтоб потом лечиться от костылей ?)
то есть для каждого метода приемлимо такой try ?
источник

АR

Андрей Ruvik in phpGeeks
Maksim Melnichuk
логика на такой клиент должна быть
try {
 $this->request();

} catch(Exception $e) {
 $this->auth();
 $this->request();
}
1) у вас же не рутовый эксепшн падает, если не авторизованы. Перепишите на try { ... } catch (UnauthException $exception) {auth; request;} catch(Exception $exception) {$this->logger->critical($exception->getMessage()); }
источник

MM

Maksim Melnichuk in phpGeeks
я накидал образно, конечно exception будет выплевываться связанные с авторизацией. значит это дублирование не критично ?
источник

AG

Anton Gordeev in phpGeeks
Maksim Melnichuk
логика на такой клиент должна быть
try {
 $this->request();

} catch(Exception $e) {
 $this->auth();
 $this->request();
}
нет, чувак. Выкидывай нахрен. try\catch никак не должен заменять операторов условий
источник

MM

Maksim Melnichuk in phpGeeks
просто был бы обычный апи можно было токен чекать по его времени жизни и не парится перед запросом, а здесь нечего чекать.. только смотреть header
источник

MM

Maksim Melnichuk in phpGeeks
Anton Gordeev
нет, чувак. Выкидывай нахрен. try\catch никак не должен заменять операторов условий
я у мамы юморист? 😂
источник

AG

Anton Gordeev in phpGeeks
причём здесь юмор. У тебя там напрашивается if\else, но никак не try\catch
источник

MM

Maksim Melnichuk in phpGeeks
Anton Gordeev
причём здесь юмор. У тебя там напрашивается if\else, но никак не try\catch
пример
источник

АR

Андрей Ruvik in phpGeeks
Anton Gordeev
причём здесь юмор. У тебя там напрашивается if\else, но никак не try\catch
чтоб проверить авторизацию, надо дать запрос, если я правильно понял задачу
источник

MM

Maksim Melnichuk in phpGeeks
Андрей Ruvik
чтоб проверить авторизацию, надо дать запрос, если я правильно понял задачу
просто мы вначале пробуем сделать запрос к нужной странице и получить определенные данные и если там выплюнет exception связанные с тем что кидает на авторизацию (header), то мы словим в catch и выполним auth (запрос) и снова повторим запрос на получение данных
источник

AG

Anton Gordeev in phpGeeks
когда у тебя нет авторизации - ты всё равно получаешь ответ. С кодом 401, наверно. Это НЕ должно вызывать исключение. Это НОРМАЛЬНОЕ поведение скрипта.
Как правильно в данной ситуации:
1. отправляешь запрос.
2. Проверяешь код ответа.
3. Если код ответа 401 - выполняешь авторизацию и посылаешь запрос ещё раз
источник

AG

Anton Gordeev in phpGeeks
крч, фактически тоже самое. Но исключение надо бросать в ненормальных ситуациях. А "неавторизован" - это нормальная ситуация
источник

MM

Maksim Melnichuk in phpGeeks
Anton Gordeev
когда у тебя нет авторизации - ты всё равно получаешь ответ. С кодом 401, наверно. Это НЕ должно вызывать исключение. Это НОРМАЛЬНОЕ поведение скрипта.
Как правильно в данной ситуации:
1. отправляешь запрос.
2. Проверяешь код ответа.
3. Если код ответа 401 - выполняешь авторизацию и посылаешь запрос ещё раз
и посылаешь запрос еще раз и там снова 401 и снова выполняет запрос ?) рекурсия ?)
источник

AG

Anton Gordeev in phpGeeks
Можешь и рекурсивно, если хочется) Можешь остановиться. А можешь сделать 3 попытки получения данных
источник

MM

Maksim Melnichuk in phpGeeks
тут еще надо учесть тот момент что данные авторизации (логин и пароль) могут быть не правильны. как это обыграть ?
источник

MM

Maksim Melnichuk in phpGeeks
будет же крутиться по кругу
источник

AG

Anton Gordeev in phpGeeks
допустим, $this->request() вернёт false,если авторизация не прошла.
for ($requestCount = 0; $requestCount < 3; ++$requestCount) {
   $result = $this->request();
   if ($result) {
       break;
   }
}
источник

YD

Yuriy Degtyar in phpGeeks
Привет. Хочу нормализовать базу данных. Создать новую таблицу и вынести в нее значение колонки и связать с новой колонкой по айди. Как правильно это сделать в симфони. После того как я выполню миграции нужно запустить скрипт который пройдеи по всем старым записям и конвертнет их. Как правильно писать этот скрипт через команду? Может есть где-то мануал по таким случаям? я не нашел
источник

AG

Anton Gordeev in phpGeeks
3 попытки запроса. Если все 3 попытки отбреются - данных не будет и больше запросы пытаться слать тоже не будем
источник