- Ещё дополню, что почему не стал использовать вариант с получением условно по име, Вервер (?), 12:10 , 11-Фев-23 (1) +8 [^]
Ещё дополню, что почему не стал использовать вариант с получением условно по имени класса в переменной, у меня ощущение, что такое динамическое получение объекта чем то сродни exec(), а такого рода финты вроде не совсем правильно использовать. А варианты типов объектов класса свё равно же создаются и их можно сразу в перечисление switch case добавлять.
- gt оверквотинг удален Дяденька, а зачем вы диспатчите типы через enum, как буд, Аноним (3), 16:03 , 11-Фев-23 (2) +4
>[оверквотинг удален] > //Получить объект нужного типа (из БД к примеру тип приходит) > $docObj = Document::getDocByType($neededTypeFromDB); > > Так вот вопрос собственно в том, насколько оправданно или наоборот плохо и > как лучше всего такой тип задачи реализовывать? > А задача значит получение экземпляра объекта указанного типа. Видел, что во всяких > автозагрузчиках классов сейчас используется динамическое их получение условно такой схемой > что если запрошенного класса нет, он подгружается по имени и дальше > также создаётся объект класса, название которого в переменной > $docObj = new $objClassName(); Дяденька, а зачем вы диспатчите типы через enum, как будто у вас algebraic data types вместо классов?
- А это вам как зайдёт, вот вы изобрели в пхп типы данных из хаскеля - осваивайте,, Аноним (3), 16:13 , 11-Фев-23 (4) +5
>Так вот вопрос собственно в том, насколько оправданно или наоборот плохо и как лучше всего такой тип задачи реализовывать?А это вам как зайдёт, вот вы изобрели в пхп типы данных из хаскеля - осваивайте, укладывая мысль в них.
- сделай обычный class Document От него наследуются class Dogovor и class Pismo , Аноним (11), 07:01 , 12-Фев-23 (11) +5
сделай обычный class Document. От него наследуются class Dogovor и class Pismo (еще обзови их class DoroBop и class nuCbMo, раз так фанатеешь от русских названий - сарказм на всякий случай). Класс Document при этом не должен знать о существовании своих подклассов и никак их не упоминать. Далее создай в совершенно отдельном месте функцию, которая принимает $typeFromDb и делает по нему return new КонкретныйКласс, можно через switch.
- Фабричный метод с маппингом - подход имеющий право на жизнь Вопрос в том, для ч, Аноним (15), 18:55 , 12-Фев-23 (15) +8 [^]
Фабричный метод с маппингом - подход имеющий право на жизнь. Вопрос в том, для чего это применять. Очевидно, что у вас есть некая универсальная форма, которая посылает ид типа создаваемого документа. И дальше вы создаете документ исходя из его ид. И в базу потом пишете с тем же самым ид. Вместо этого можно для каждого типа документа сделать свои формы, тип создаваемого документа разруливать по маршруту обработчика, ид для базы держать в константе класса и работать с ним только при записи в базу - то есть, в контроллере вообще никогда.
- Надо не играть в бабу Вангу и чётко спросить В чём смысол поделки, самопальная O, Аноним (18), 14:01 , 15-Фев-23 (20) +6 [^]
Надо не играть в бабу Вангу и чётко спросить:>Я тут пишу свои всякие поделки В чём смысол поделки, самопальная ORM?
|