[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Передача данных для сохранения
Страницы: 1, 2, 3, 4, 5, 6
twin
Цитата (Guest @ 27.01.2019 - 15:39)
я накатал код с валидацией ты его залил грзяью, потом пишешь а как же валидация, теперь это уже просто транспортный объект.
Его не нужно ничем заливать. Он изначально грязный. Я его и разбирал. Потому и говорю про валидацию. Она вовсе тут не нужна, она должна быть отдельно. Ты приплел какие то каталоги и товары, причем они тут? ТС нужна только транспортировка, на кой ему твоя валидация? Тем более в таком извращенном виде.

Транспортный объект, либо обьект-значение (это не одно и тоже), штука весьма простая. Никакого мудрежа там не нужно. Хочешь код класса для формирования такого объекта, на тебе, раз у brevis'а не увидел:
class MyObject 
{
protected $name;
protected $description;
protected $price;

public function setName($name)
{
$this->name = $name;
}

public function setDescription($description)
{
$this->description = $description;
}

public function setPrice($price)
{
$this->price = $price;
}

public function __get($key)
{
if (!property_exists($this, $key)) {
throw new Exception('Property '. $key .' not found in '. __CLASS__);
}
return $this->$key;
}
}
Это с сеттерами. Можно конструктором разобрать массив:
class MyObject 
{
protected $name;
protected $description;
protected $price;

public function __construct($data = [])
{
foreach ($data as $key => $value) {
$this->exists($key);
$this->$key = $value;
}
}


public function __get($key)
{
$this->exists($key);
return $this->$key;
}

public function exists($key)
{
if (!property_exists($this, $key)) {
throw new Exception('Property '. $key .' not found in '. __CLASS__);
}
}
}

Можно вместо конструктора использовать метод create() к примеру. Можно заюзать все три варианта в одном классе :D Как душе угодно. И что, то так сложно? А это паттерн же.

Это как раз просто, это KISS. Есть все необходимое и достаточное для дальнейшего использования в разных классах. Чего ты там намудрил, да еще с таким апломбом:
Цитата (Guest @ 26.01.2019 - 20:12)
ну вы насоветовали ... по-моему все чушь


Цитата (Guest @ 27.01.2019 - 15:39)
занавес.... перечитай, что пишешь
Ну вот опять... Я надеюсь ты когда-нибудь это поймешь. И тогда станет стыдно)))

Цитата (Guest @ 27.01.2019 - 15:39)
нет - если в программе продумана логика общения на уровне объектов, я всегда могу заменить код без потери
В том и дело, что у тебя не продумана. И я уже показал на примере с датами.
Цитата (Guest @ 27.01.2019 - 15:39)
ахахах выдыхай ))) ведь теперь ты просто повторяешь меня )))) все верно успокойся именно так я и написал
вот
Паттерны, антипаттерны, решения, первичен объект а не его реализация
Нет, не так. У объекта нет реализации. Реализация есть у классов, а это совсем не одно и то же.
Цитата (Guest @ 27.01.2019 - 15:39)
предложенный код не претендует на инструкцию, а является примером использования конструкции
и кому это тут надо? Да и сама конструкция - кал. Я объяснял уже. По крайней мере в данном случае точно кал.
Цитата (Guest @ 27.01.2019 - 15:39)
Твин- нехороший человек, понимающий свою неправоту и при этом не желающий извинятся
Пока не вижу причины. На личности я не переходил, нехорошим человеком не обзывался, а что касается кода, так он объективно говно.



_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.