Size: a a a

2020 December 16

MW

Maxyc Webber in Laravel UA
поправьте меня пожалуйста, если видите какие то неточности https://maxyc.ru/programming/replace-conditional-with-polymorphism/
источник

MW

Maxyc Webber in Laravel UA
Роман Игумнов
пытаюсь сделать нечто такое

       $items = Cart::getContent();
           foreach ($items as $item) {
               $condition = new \Darryldecode\Cart\CartCondition([
                   'name' => 'COUPON',
                   'type' => 'coupon',
                   'attributes' => [
                       'promocode' => $this->code
                   ],
                   'value' =>  $item->attributes[0] != 0  ? 0 : -1 * $this->procent . '%' ,
               ]);
               Cart::addItemCondition($item->id, $condition);
           }

Все работает, но по факту не создается Cart::getConditions()
Ром, код не простой. и надо много сил чтобы вникнуть в контекст и понять, что ты вообще хочешь сделать. попробуй продебажить.
источник
2020 December 17

AS

Alex Sin in Laravel UA
получается был иф элс, а стало свитч кейс
источник

AS

Alex Sin in Laravel UA
вот такой прикол красивее и короче будет через мапинг по карте в конфиге
источник

MW

Maxyc Webber in Laravel UA
Alex Sin
получается был иф элс, а стало свитч кейс
не совсем. я вынес  на разные классы реализацию. а выбор нужного класса вынес в отдельный фабричный метод
источник

AS

Alex Sin in Laravel UA
Maxyc Webber
не совсем. я вынес  на разные классы реализацию. а выбор нужного класса вынес в отдельный фабричный метод
я по-бырику пробежался просто
источник

AS

Alex Sin in Laravel UA
источник

MW

Maxyc Webber in Laravel UA
Alex Sin
вот такой прикол красивее и короче будет через мапинг по карте в конфиге
потом на большом проекте у вас будут тысячи таких маппингов и вы уволитесь )
на текущем проекте на симфони прошлые разработчики так и делали. теперь  приходится понемногу распутывать клубок из тысяч строк сервисов и их маппингов в нормальный поддерживаемый код
источник

AS

Alex Sin in Laravel UA
1000 маппингов лучше чем 1000 кейсов в свиче
источник

AS

Alex Sin in Laravel UA
А если там карты в картах и карты в картах...
источник

AS

Alex Sin in Laravel UA
Alex Sin
А если там карты в картах и карты в картах...
А как вы считаете лучше делать?
источник

AK

Alex Kovalchuk in Laravel UA
спробую накидати варіанти
1 - якщо вже if поміняв на switch то мені більше подобається варіант з ключ значення  (скрін з прикладом який був під руками) https://github.com/PHPOffice/PhpSpreadsheet/blob/master/src/PhpSpreadsheet/IOFactory.php
источник

AS

Alex Sin in Laravel UA
Alex Kovalchuk
спробую накидати варіанти
1 - якщо вже if поміняв на switch то мені більше подобається варіант з ключ значення  (скрін з прикладом який був під руками) https://github.com/PHPOffice/PhpSpreadsheet/blob/master/src/PhpSpreadsheet/IOFactory.php
Это и есть маппинг, про который речь шла выше)
источник

AK

Alex Kovalchuk in Laravel UA
Alex Sin
Это и есть маппинг, про который речь шла выше)
о, а я і не побачив, уже зовсім оченятка злипаються
в такому випадку я підтримую твій варіант)
источник

AS

Alex Sin in Laravel UA
Alex Kovalchuk
о, а я і не побачив, уже зовсім оченятка злипаються
в такому випадку я підтримую твій варіант)
Автор вопроса сказал что в перспектива это проблема будет, типо спагетти. Я так не считаю, но мне интересно, какая может быть альтернатива мапингу (не свич)
источник

AS

Alex Sin in Laravel UA
источник

В

Вячеслав in Laravel UA
Альтернатива маппингу - конвенция
источник

В

Вячеслав in Laravel UA
Если посмотреть на пример, название ключа точно совпадает с названием класса.
Берём этот ключ строку, приклеиваем строку пространства имён в начало и создаём объект
источник

В

Вячеслав in Laravel UA
И мы избавилтсь от надобности добавлять каждое значение в массив/карту
источник

В

Вячеслав in Laravel UA
Только неймспейсы нужно идентичные
источник