Я создал класс DTO, допустим, ProductRaitingMinDTO, в котором я сделал свойства $stars, $productId, $textStatus. Тайпхинтингом в докблоке указал, что свойства соответственно float, int, string. Сразу скажу, что проект, к сожалению на
версии 5.6 PHP. Однако из хранилища все данные приходят строками, и вот вопрос, как лучше, в конструкторе DTO сделать
public function __construct($stars, $productId, $textStatus)
{
$this->stars = (float) $stars;
$this->productId = (int) $productId;
$this->textStatus = $textStatus;
}
или при создании ДТОшки
делать
new ProductRaitingMinDTO(
(float) $stars,
(int) $productId,
$textStatus
);
Какой из вариантов предпочтительнее? Допускается ли тайпкастинг в конструкторе DTO?