@oop_ru

Страница 20 из 785
Sergei
08.12.2016
19:16:40
И Doctrine по ним и определяет мапинг полей в таблицы?

da horsie
08.12.2016
19:16:50
да

Sergei
08.12.2016
19:16:51
Ок, ожидаемо.

da horsie
08.12.2016
19:16:53
как вариант

Google
da horsie
08.12.2016
19:17:12
что такое декораторы и атрибуты я не знаю

Sergei
08.12.2016
19:18:09
Думаю, та же фигня. Когда к методам и данным класса можно присоединить объект, как-то их описывающий.

da horsie
08.12.2016
19:18:48
такого я не знаю

но звучит похоже на аннотации

Sergei
08.12.2016
19:20:40
[Table("users")] Class User{ [Field("user_name")] string username; [Field("user_age")] int age; }

da horsie
08.12.2016
19:20:57
а

ну по сути тоже самое

только в пыхе это через reflection

внутри они ни что иное как док-блоки, комментарии

на которые навешана логика, которая их парсит через рефлекшн

Sergei
08.12.2016
19:22:23
только в пыхе это через reflection
В других системах тоже.

на которые навешана логика, которая их парсит через рефлекшн
Вот вроде так оно и работает например в C#.

Кругом всё одно и то же :/

Google
da horsie
08.12.2016
19:23:08
а это c# код?

Sergei
08.12.2016
19:23:20
Да

da horsie
08.12.2016
19:23:28
комменты в квадратных скобках?

Sergei
08.12.2016
19:23:34
Ага

da horsie
08.12.2016
19:23:53
и эти люди запрещают мне ковыряться в носу

Sergei
08.12.2016
19:24:11
При этом комменты эти - на самом деле экземпляры объектов, которые можно выципить через рефлекшен.

Типа берёшь неких неведомый объект, получаешь его тип, далее через рефлекшен ходишь по дереву типа по всем его полям; про каждое поле спрашиваешь, есть ли ассоциированные с ним объекты?

Положим, есть; провеяшь, а этот "ассоциированный объект" (атрибут) случайно не типа Field?

Положим, он и есть Field.

Ок, тогда у него спрашиваешь например getName() - и вот теперь тебе известно, что неведомую фигню нужно сохранить в таблицу данных в поле с именем "user_name".

Aleh
08.12.2016
19:27:51
ну в пхп еще можно через .yml файлы

или xml/php

тогда в самой сущносте вообще нет никаких отсылок к доктрине

Sergey
08.12.2016
19:28:33
аминь

рекомендованный вариант - xml

аннотации - это для ленивых (как я)

> Ок, тогда у него спрашиваешь например getName() - и вот теперь тебе известно, что неведомую фигню нужно сохранить в таблицу данных в поле с именем "user_name". у меня нет геттеров, шах и мат

о чем разговор? о том что дата мэпперы не нужны?

Sergei
08.12.2016
19:29:48
О том как в разных языках устроены orm, и почему это хорошо/плохо/никак.

da horsie
08.12.2016
19:30:41
ну егор-то топит за active record

Google
da horsie
08.12.2016
19:31:02
за какой-то ультраортодоксальный его вариант

Evgeniy
08.12.2016
19:31:28
нету generic

reflection есть в php но сделан он медленно

annotation вообще через жопу сделаны по сравнению с java

Sergei
08.12.2016
19:32:02
По-моему оно везде медленно

Evgeniy
08.12.2016
19:32:17
в php annotation на уровне языка НЕТ

Sergei
08.12.2016
19:32:27
В Go аннотации вообще в виде "строка".

Evgeniy
08.12.2016
19:32:29
есть просто договоренность фигарить их в коменты обычные)

Sergei
08.12.2016
19:32:33
Люди как-то живут.

Evgeniy
08.12.2016
19:32:47
в php аннотация в обычном комментарии

Sergei
08.12.2016
19:32:49
есть просто договоренность фигарить их в коменты обычные)
Стоп, а вы через рефлекшен умеете комменты читать? О_о

da horsie
08.12.2016
19:32:59
да

Evgeniy
08.12.2016
19:32:59
который никак языком не обрабатывается его надо отдельно парсить

da horsie
08.12.2016
19:33:25
как минимум, специально оформленные комменты

а так хз на самом деле

Sergei
08.12.2016
19:33:53
Вы суровые :)

Evgeniy
08.12.2016
19:34:11
я просто и на java работал и на php :D

Aleh
08.12.2016
19:34:41
да, только doc comments

причем на самом деле разные парсеры по-разному относят их к разным нодам

Google
Sergey
08.12.2016
20:30:36
честно-честно нет?)
ну ладно... пока есть

Sergei
08.12.2016
23:57:24
про ОРМ тоже смотрел?
Посмотрел. По существу услышал следующее: "если вы экспозите внутренние данные объекта наружу - то это обычно херово". Соглашаюсь с автором.

Там дальше были обсёждения типа "а что если не SQL, а NoSQL? Или json? Или XML?" - вот оно ровно всё про то же: экспозить наружу данные объекта под предлогом "for greater good" - вот оно это плохо. Сложно с этом несогласиться.

Почему никто не протестует? :)

Sergey
09.12.2016
00:36:21
ну накину... а где собственно "экспоузить наружу"?

что до nosql - агрегаты сущностей

если мы говорим о решениях вроде Doctrine/Hibernate и не делаем геттеров/сеттеров просто так - то вроде ж все хорошо, нет?

Sergei
09.12.2016
00:37:20
ну накину... а где собственно "экспоузить наружу"?
Аннотации маркируют данные, которые достаются через rtti наружу из объекта.

Sergey
09.12.2016
00:37:44
альтернатива - писать мэпперы руками

добавлять DTO

добавлять гейтвеи

Sergey
09.12.2016
00:38:25
насколько я помню Егор топит за DAO потому что "очевиднее"

и я согласен, хибернейты всякие это магия

но с практической точки зрения - я не хочу возиться с базой от слова совсем. Для быстрой разработки - норм

Sergei
09.12.2016
00:39:24
альтернатива - писать мэпперы руками
Приватные данные, аннотации, наследование от объекта которые ровно так же ходит по rtti - но приватно, изнутри объекта.

Sergey
09.12.2016
00:39:32
та же штука что и с DI, да, магия, да, неявно, да, мы не знаем всей сокрытой сложности... но ради этого же и делалось

Google
Sergei
09.12.2016
00:39:51
Как вариант, когда "почти то же самое, но без internals exposed.

Sergey
09.12.2016
00:40:26
так что делать то?)

как жить?

особенно в PHP где у тебя выбора особо то и нет

в java у тебя хотя бы есть техническая возможность не нарушая инкапсуляцию сильно сделать удобно и "правильно"

а в php такой возможности особо нет

Sergei
09.12.2016
00:45:41
Хм...

В пхп можно спрятать всю кашу с orm внутри объекта, за интерфейсом поведения?

Sergey
09.12.2016
00:48:43
интеракторы дяди боба?)

тут вопрос что значит "каша"?

приведу пример. У нас есть штуки которые пишут, и штуки которые читают

штуки которые пишут достают из репозиториев сущности, что-то просят их сделать, после чего происходит флаш юнит оф ворк

штуки которые только читают (например для ответов апишки, или шаблонов) могут уже игнорировать ORM и составлять специализированные DTO специально для того что нужно.

"прятать" ORM и работу с сущностями имеет смысл только для чистых операций чтения

во всяком случае это мое мнение на данный момент

Sergey
09.12.2016
08:06:51
омг только заметил http://ru.yegor256.com/

да уж, быстро о человеке потрится впечатление)

Страница 20 из 785