@symfony_php

Страница 196 из 1418
Dinar
26.04.2017
09:14:38
и там есть getRoles
Так он говорит про ACL. А это про RBAC. То есть надо чтобы у каждого пользователя были свои конкретные наборы прав. Типа то может то не может. не привязанные к ролям. То есть прям список разрешений каждого юзера свой.

Google
Sergey
26.04.2017
09:18:17
а RBAC в симфони есть из коробки

Dinar
26.04.2017
09:18:25
Ну по сути есть.

Но он возвращает таки Roles :)

Понятно что я могу все что угодно вернуть

Dinar
26.04.2017
09:18:49
А вот нет у меня например в системе понятия Roles

Все юзеры

Sergey
26.04.2017
09:18:54
POST_EDITOR - вот тебе роль позволяющая редактировать посты

Dinar
26.04.2017
09:19:10
Да я понимаю. :)

Sergey
26.04.2017
09:19:26
ну так о чем разговор.

Dinar
26.04.2017
09:19:33
А где-то там было написано, что симфони не парсит из коробки без префикса ROLE_

Sergey
26.04.2017
09:19:35
тебе не надо прописывать даже эти "роли" никуда - просто вернул и все

Google
Dinar
26.04.2017
09:19:35
Это про что?

Sergey
26.04.2017
09:19:50
А где-то там было написано, что симфони не парсит из коробки без префикса ROLE_
вроде бы оно вообще ничего не парсит и проверяет как есть

во всяком случае с версии 2.6 и появления воутеров вообще никаких проблем небыло с организацией этого говна

проще потратить 10 минут и провести эксперемент чем строить домыслы

Dinar
26.04.2017
09:21:26
Ну я понял тебя. Спасибо. Здравая идея.

Daniel
26.04.2017
09:56:50
Ребята, а примерно так норм ли делать: article_repository: class: AppBundle\Repository\ArticleRepository factory: 'entity_manager:getRepository' arguments: 'AppBundle:Article' ?

Dinar
26.04.2017
10:00:46
А еще кстати можно не через factory делать arguments: - "@=service('doctrine').getRepository('AppBundle:Article')"

Daniel
26.04.2017
10:03:19
Это какая версия SF?

Dinar
26.04.2017
10:04:03
Любая вроде как

Ну из последних

Я не могу точно сказать, когда это появилось

Daniel
26.04.2017
10:05:02
Смотрится как то страшно конечно

Dinar
26.04.2017
10:11:37
По-моему намного более чиабельно чем с фабрикой.

Но на самом деле раньше фабрика эта выглядела еще страшнее ))

Sergey
26.04.2017
10:16:59
Ребята, а примерно так норм ли делать: article_repository: class: AppBundle\Repository\ArticleRepository factory: 'entity_manager:getRepository' arguments: 'AppBundle:Article' ?
Например удобно для тестов. Мокать только репозиторий, а не менеджер и репозиторий. А так же удобно внедрять как зависимость. Еще можно отменить публичность доктриновского репозитория и сделать сервис независимого репозитория. Если кратко, то помоему так делать нужно)

Ivan
26.04.2017
10:18:16
привет всем. как вы относитесь к денормализации данных на уровне сущности (например, user->firstName, user->lastName, user->fullName) ?

Daniel
26.04.2017
10:18:47
Ivan
26.04.2017
10:18:56
это нормально или лучше такого избегать?

Dinar
26.04.2017
10:19:02
Разве? :)

Google
Dinar
26.04.2017
10:19:07
Зачем его мокать?

У меня в DI уходит репозиторий

Мокаешь. Дизейблишь конструктор и прописываешь, что методы возвращают

Sergey
26.04.2017
10:19:56
Нет, в этом случае тоже как я понимаю один, это два варианта одного и того же, дело вкуса

Daniel
26.04.2017
10:20:13
Ну он вроде про случай, когда внедряется менеджер, а с него берутся репозитории в сервисе

Dinar
26.04.2017
10:21:24
ну такое. фабрика лучше
Идеологически или практически?

Потому что на практике преимуществ не вижу

Daniel
26.04.2017
10:22:19
привет всем. как вы относитесь к денормализации данных на уровне сущности (например, user->firstName, user->lastName, user->fullName) ?
А если у тебя отдельно фамилия, имя, отчество хранятся и + ко всем имеется метод getFullName

Sergey
26.04.2017
10:25:29
во-первых у тебя репос не всегда будет репосом доктрины. это может быть просто сервис, который принимает em себе во-вторых @article_repository и в 3.3 симфони @AppBundle\Repository\ArticleRepository куда проще писать, чем каждый раз делать экспрешен для особых любителей юзать контейнер в контроллерах тоже не очень удобно и придется как и раньше юзать doctrine get repository ну и я не уверен что IDE будет нормально поддерживать такие конструкции в плане поиска использований, выводить тип и тд

Dinar
26.04.2017
10:27:32
Вот хоть раз пришлось?

Sergey
26.04.2017
10:27:41
дело не в смене орм

Dinar
26.04.2017
10:27:42
Я за 10 лет ни разу такого не сделал.

Sergey
26.04.2017
10:27:51
а то что репосу может понадобится какая-то зависимость

Dinar
26.04.2017
10:28:11
ты про репо как сервис имеешь ввиду

Sergey
26.04.2017
10:28:11
ну и в принципе рекомендуется делать репос именно так

да

Dinar
26.04.2017
10:28:29
Так может тогда это должен быть не репос а сервис лучше?

Google
Dinar
26.04.2017
10:28:31
Отдельный

Sergey
26.04.2017
10:29:18
это может быть репос, с каким-то особым гидратором или еще чего

Dinar
26.04.2017
10:29:54
Ну я понял.

Спасибо. :)

Ivan
26.04.2017
10:38:33
А если у тебя отдельно фамилия, имя, отчество хранятся и + ко всем имеется метод getFullName
ну, хранятся отдельно, стоит ли добавлять поле fullName, для того чтобы сохранить полное имя в базе, или лучше получать его методом getFullName?

Dinar
26.04.2017
10:38:57
Так метод лучше.

Зачем дублировать данные.

Потом поддерживать соответствие

Sergey
26.04.2017
10:39:27
конечно же метод

Ivan
26.04.2017
10:39:29
а если нужен фильтр по полному имени в списке пользователей, например?

Admin
ERROR: S client not available

Sergey
26.04.2017
10:39:45
в мускуле можно конкатенацию делать)

Ivan
26.04.2017
10:39:48
строить его через concat в sql

а если логика сложнее, чем конкатенация?

а если нужен список пользователей, с показом полного имени?

мне сущности гидрировать придётся

Sergey
26.04.2017
10:43:00
это сложнее чем конкатенация?

Ivan
26.04.2017
10:43:12
нет, это другой момент

чтобы выполнить $user->getFullName()

хорошо, а хранение количества элементов в коллекции в отдельном поле - это нормально, или так тоже лучше не делать?

Google
Ivan
26.04.2017
10:51:44
как вариант, можно всё через отдельную read model сделать, и обновлять её при обновлении юзера

Sergey
26.04.2017
10:52:47
все по ситуации нужно смотреть. где-то лучше метод, где-то лучше в preUpdate склеивать, а где-то вообще не юзать сущности

Denis denya Voskoboinik
26.04.2017
10:56:08
а еще можно прикрутить что-то типа эластика, для удобной агрегации большого кол-ва данных

а то хранение кол-ва эелементов внезапно где-то поломается

Ivan
26.04.2017
10:56:46
да, норм вариант, отдельная read model

Denis denya Voskoboinik
26.04.2017
10:56:53
и не будешь знать когда это произошло

Ivan
26.04.2017
10:56:54
можно elastic

а эластик проигрывает по быстродействию mysql на простых запросах типа "select * from user" ?

Dinar
26.04.2017
11:25:35
Так не отдельно эластик а вместе с мускл :) Где такой простой - делай прямой мускл запрос :)

Ivan
26.04.2017
11:30:43
это понятно, а полностью перевести все чтение на эластик - это лишнее?

Dinar
26.04.2017
11:31:05
Я думаю, это неверно

Ivan
26.04.2017
11:31:15
почему?

Dinar
26.04.2017
11:31:15
Это как перевести все на хранение в Memcache :)

Эластик - это по своему принципу - кэш

Ivan
26.04.2017
11:32:32
то есть, данные могут потеряться?)

Dinar
26.04.2017
11:32:39
То есть, как мне кажется, он не должен быть единственным хранилищем данных

Ну он же создан чтобы полнотекстовый поиск обеспечивать.

Кэш - это такая штука, которую ты должен мочь в любой момент инвалидировать и перекэшировать.

Ivan
26.04.2017
11:33:46
так я могу

основной сторадж - sql бд

elasticsearch только для чтения

ну то есть вывести список юзеров, для этого использовать эластик

чем плохо?

Страница 196 из 1418