Size: a a a

2020 November 27

MW

Maxyc Webber in Laravel UA
а как тогда назвать лучше? дто это не энтити. и в дто можно делать проверки и кидать эксепшены.
источник

AS

Alex Sin in Laravel UA
Роман Игумнов
namespace App\Services;

use App\Interfaces\PayPartsInterface;

use PayParts\PayParts;
use App\DTO\PaySettingsDTO;

class PayPartsService implements PayPartsInterface
{
   private $payParts;

   public function __construct(PaySettingsDTO $settings)
   {
       $this->payParts = new PayParts($settings->setting['store_id'], $settings->setting['password']);
   }

   public function setOptions(array $options)
   {
       return $this->payParts->setOptions($options);
   }

   public function create(string $method)
   {
       return $this->payParts->create($method);
   }
}
можно сразу зафигачить пустой интерфейс по приколу для ДТОшек, и в параметры этот интерфейс вставить
источник

РИ

Роман Игумнов... in Laravel UA
Alex Sin
можно сразу зафигачить пустой интерфейс по приколу для ДТОшек, и в параметры этот интерфейс вставить
Ты меня поломал
источник

РИ

Роман Игумнов... in Laravel UA
👻
источник

AS

Alex Sin in Laravel UA
Maxim Rebitskiy
Говорили балакали, сіли і заплакали)
крутая поговорка
источник

MW

Maxyc Webber in Laravel UA
Роман Игумнов
Ты меня поломал
ты ща пытаешься оч большой кусок слона сожрать
источник

MW

Maxyc Webber in Laravel UA
вспомни из книги, там было про это
источник

MW

Maxyc Webber in Laravel UA
сделай пока как сможешь. как понял. потом. в след раз уже что то большее добавишь, что к тому моменту уже узнаешь и уложится в голове
источник

AS

Alex Sin in Laravel UA
Maxyc Webber
а как тогда назвать лучше? дто это не энтити. и в дто можно делать проверки и кидать эксепшены.
Да ладно, я думал в ДТО нельзя делать проверки (то есть по факту валидацию), и искал инфу чем отличается ВО от ДТО, и вот одно из отличий ВО - это то что в нем делать валидации и проверки это ок, а вот в ДТО вроде нет. Можешь скинуть источник, откуда ты узнал что можно в ДТо проверки делать?
источник

РИ

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

MW

Maxyc Webber in Laravel UA
источник - опыт. так что возможно я не прав.
я исхожу из того, что vo  это сложный тип данных, который там на месте все проверит.
но если ты используешь простые - инт, стринг. то и на месте проверять. в любом случае ДТО имеет обязанность принять данные и отдать данные. т.е. работа с данными. как минимум тм уже есть тайп хинтинг. так почему бы не добавить пару валидаторов?

у меня в энтити доктрины в сеттерах всегда есть проверки.
источник

MW

Maxyc Webber in Laravel UA
жаль в 8 не добавили структуры данных
источник

MW

Maxyc Webber in Laravel UA
Роман Игумнов
это жадность к знаниям)))
есть опасность так перегореть. аккуратней
источник

ШН

Шило Николай... in Laravel UA
Maxyc Webber
источник - опыт. так что возможно я не прав.
я исхожу из того, что vo  это сложный тип данных, который там на месте все проверит.
но если ты используешь простые - инт, стринг. то и на месте проверять. в любом случае ДТО имеет обязанность принять данные и отдать данные. т.е. работа с данными. как минимум тм уже есть тайп хинтинг. так почему бы не добавить пару валидаторов?

у меня в энтити доктрины в сеттерах всегда есть проверки.
В сущности по идее должны поступать уже валидные данные, валидация это уровень инфраструктуры
источник

MW

Maxyc Webber in Laravel UA
Maxim Rebitskiy
Мы сейчас привязались я так понял к Ларавелю. Например та же библиотека (/пакет, не важно) что он исопльзует, не только под Лару сделана. И никто не может гарантировать что в конструктор основного класса будут приходить валидные данные.

Это можно решить: указав строгий тип string, тогда null или другое не передадим.
Но тут мы можем получить пустую строку, что тоже скорей всего нас не устраивает, но скорей всего как и при просто при неправильном ключе сервис к которому мы обращаемся выдаст 401 ошибку.

Вот тут и можно сделать “валидацию”, если мы уже говорим делать ее, и где делать. Потому что в СервисеПровайдере у себя мы сделаем, но если кто-то решит переиспользовать наш “Сервис”, то может уже пропихнуть там и невалидные данные.
поэтому и говорю. холивар будет какой то
источник

AS

Alex Sin in Laravel UA
Maxyc Webber
источник - опыт. так что возможно я не прав.
я исхожу из того, что vo  это сложный тип данных, который там на месте все проверит.
но если ты используешь простые - инт, стринг. то и на месте проверять. в любом случае ДТО имеет обязанность принять данные и отдать данные. т.е. работа с данными. как минимум тм уже есть тайп хинтинг. так почему бы не добавить пару валидаторов?

у меня в энтити доктрины в сеттерах всегда есть проверки.
ентити доктрины отвечают и за структуру бд (миграции) и за хранение данных в объетке, но смысловая нагрузка все же куда более узкая у энтити, тогда как дто - универсальный смысл. Насколько я помню (нужно уточнить терминологию в гугле), у ДТО, согласно первому принципу солид, единственной ответственностью является передача данных между слоями в приложении, а реализация валидации там же - это нарушение первого принципа получается
источник

AS

Alex Sin in Laravel UA
Maxyc Webber
жаль в 8 не добавили структуры данных
они уже очень давно как есть в ds экстеншене, и по-моему в СПЛ, почему бы не пользоваться
источник

AS

Alex Sin in Laravel UA
Maxyc Webber
есть опасность так перегореть. аккуратней
+++
источник

MW

Maxyc Webber in Laravel UA
Alex Sin
они уже очень давно как есть в ds экстеншене, и по-моему в СПЛ, почему бы не пользоваться
не все проекты могут себе позволить поставить расширение или перекомпилить ядро
источник

AS

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