Size: a a a

2021 February 19

DT

Dmitriy Tkachenko in PHP
в общем то если апишку только дополнять новыми методами, то версионировать не нужно
источник

DT

Dmitriy Tkachenko in PHP
методами или параметрами
источник

ПГ

Павел Г. in PHP
Dmitriy Tkachenko
в общем то если апишку только дополнять новыми методами, то версионировать не нужно
Поменялся старый метод
источник

DT

Dmitriy Tkachenko in PHP
а как он до этого выглядел?
источник

ПГ

Павел Г. in PHP
В итоге появилось это:
if(request('operatorLogin')){
 $operator = $this->remoteApi->getByLogin(request('operatorLogin'));
}else{
 $operator = $this->setting->get('operator');
}
Мелочь
, но выглядит не очень
источник

ПГ

Павел Г. in PHP
Dmitriy Tkachenko
а как он до этого выглядел?
$operator = $this->setting->get('operator');
Ну и дальше остальная БЛ, Остлаьная БЛ не меняется. Просто от переданных параметров оператор берется из разных мест. Но параметры меняются только в разных версиях. Т.е. в одной версии параметр operator всегда передается, в другой не передается никогда. Т.е. БЛ как бы меняется именно от версии
источник

NO

Nex Otaku in PHP
Зависит от того, сколько у тебя таких методов. Все или малая часть.
источник

VM

Volodymyr Melko in PHP
Павел Г.
$operator = $this->setting->get('operator');
Ну и дальше остальная БЛ, Остлаьная БЛ не меняется. Просто от переданных параметров оператор берется из разных мест. Но параметры меняются только в разных версиях. Т.е. в одной версии параметр operator всегда передается, в другой не передается никогда. Т.е. БЛ как бы меняется именно от версии
да не меняется БЛ от логики
это 2 действия - получить оператора и что-то с ним уже сделать
источник

VM

Volodymyr Melko in PHP
в симфони, к примеру, я бы мог получение оператора запендюрить а аргумент резолвер и даже код контроллера бы не поменялся, было бы что-то типа

public function someAction(Operator $operator, BLOperation $operation): Response
источник

ПГ

Павел Г. in PHP
Volodymyr Melko
да не меняется БЛ от логики
это 2 действия - получить оператора и что-то с ним уже сделать
Да, меняется не совсем корректно - логика усложнилась
источник

ПГ

Павел Г. in PHP
Volodymyr Melko
в симфони, к примеру, я бы мог получение оператора запендюрить а аргумент резолвер и даже код контроллера бы не поменялся, было бы что-то типа

public function someAction(Operator $operator, BLOperation $operation): Response
В аргумент резолвер обращение к апи? мощно
источник

NO

Nex Otaku in PHP
Если мало, то можно просто два метода сделать, один будет с дефолтным оператором и второй с указанным. Ифа не будет.

Если все методы, то можно сделать абстракцию и из неё доставать, что-то вроде $context->getOperatorId(), реализация будет разной в зависимости от апишки. Опять же ифа не будет, но код немного усложняется.
источник

VM

Volodymyr Melko in PHP
Павел Г.
В аргумент резолвер обращение к апи? мощно
такое впечетление, что если делать не в аргумент резолвере, то к апишке не нужно будет обращаться
источник

ПГ

Павел Г. in PHP
Nex Otaku
Если мало, то можно просто два метода сделать, один будет с дефолтным оператором и второй с указанным. Ифа не будет.

Если все методы, то можно сделать абстракцию и из неё доставать, что-то вроде $context->getOperatorId(), реализация будет разной в зависимости от апишки. Опять же ифа не будет, но код немного усложняется.
50 строк, из них 4 зависят от версии (точнее от переданных параметров юзкейса). Делать 2 метода не очень. Если только с вынесением общей части в отдельный метод, но тоже такое себе. Да и так не получится сделать, если бы это было не в начале а в середине.
источник

NO

Nex Otaku in PHP
Павел Г.
50 строк, из них 4 зависят от версии (точнее от переданных параметров юзкейса). Делать 2 метода не очень. Если только с вынесением общей части в отдельный метод, но тоже такое себе. Да и так не получится сделать, если бы это было не в начале а в середине.
Что не получится там?

public function sendV1($message)
public function sendV2($message, $operatorLogin)
private function send($message, $operator)
источник

ПГ

Павел Г. in PHP
Nex Otaku
Что не получится там?

public function sendV1($message)
public function sendV2($message, $operatorLogin)
private function send($message, $operator)
Конкрентно в этом случае получится, я же написал. Не получится если эта разница всплывала бы по середине метода.
источник

NO

Nex Otaku in PHP
С чего вдруг?
источник

ПГ

Павел Г. in PHP
А потом будет sendV3 который что то менется в send и понеслось...
источник

ПГ

Павел Г. in PHP
Nex Otaku
С чего вдруг?
25 строк
if(...)
25 строк

Выносить sendHeader sendFooter ? :)
источник

NO

Nex Otaku in PHP
Не будет там ифа же.
источник