Anonymous
@BlackArray будет жить. Поприветствуем!
Anton 🐻
зачем
Вадим
зачем
Потому что это очень похоже на то что тебе надо
Anonymous
dev будет жить. Поприветствуем!
Anonymous
Как сделать единую проверку на сессию пользователя в symfony, к примеру на php я при успешной проверке создал сессию и произвёл бы проверку, но в каждом методе делать проверку это дико как то, есть ли Middleware в symfony чтобы там сделать проверку? Или как это делается?
Sergei
не давать логинится второй раз?
Anonymous
не давать логинится второй раз?
Чтобы не делать в каждом методе проверку на проверку сессии
Anonymous
Не хочу бандл брать
Sergei
не понимаю задачу: нужно давать только одну сессию на аккаунт?
Anonymous
не понимаю задачу: нужно давать только одну сессию на аккаунт?
Не в сессии дело, дело в каждом методе делать проверку на проверку сессии, для админ панели
Sergei
понимания стало еще меньше)
Anonymous
понимания стало еще меньше)
К примеру у тебя есть регистрация и вход Я вошёл в систему, все ок, он перешёл на другую страницу, за другой url отвечает другой метод, в том методе мне нужно сделать проверку на сессию, вот как сделать единую проверку на сессию
Sergei
сдается мне ты не ту задачу решаешь.
Sergei
Судя по описанию, пахнет правильным постороением роутов и АЦЛ
Sergei
фаервол и все такое
Anonymous
Спасибо направил
Anonymous
Есть ссылка что по этому почитать можно
Sergei
security.access_control
Sergei
https://symfony.com/doc/current/security.html
Anonymous
Спасибо
Anonymous
@dmitry_dev будет жить. Поприветствуем!
Anonymous
@JackLite будет жить. Поприветствуем!
Anonymous
@saxap будет жить. Поприветствуем!
Sergue
Ребят, доброго, подскажите, курю вот док https://symfony.com/doc/current/security/form_login_setup.html я не понимаю каким мистическим способом данные формы логина вдруг начинает обрабатывать класс LoginFormAuthenticator?
Sergue
он где то в конфиге прописывается после использования php bin/console make:auth?
Sergei
Так глянь в поиске по файлам проекта, что покажет
Sergei
по *.yml
Вадим
он где то в конфиге прописывается после использования php bin/console make:auth?
https://symfony.com/doc/current/reference/configuration/security.html#the-login-form-and-process
Anton 🐻
Есть записи в бд, я читаю их через доктринку и получаю объекты ентити, которые потом сериализую в джейсончик либо передаю в сторонние сервисы. Но некоторые поля нужно преобразовывать, а не показывать как есть.
Anton 🐻
но @Serializer\Accessor не хватает, т.к. нужно для преобразования использовать дополнительные сервисы, а их вроде нельзя прокинуть в ацессор. ну либо попытаться прокинуть в ентити через DI через конструктор, но это пиздлецово и хз можно ли вообще так сделать.
Anton 🐻
какие ещё есть подходы создания единой точки для преобразования значений ентить?
Sergei
Есть записи в бд, я читаю их через доктринку и получаю объекты ентити, которые потом сериализую в джейсончик либо передаю в сторонние сервисы. Но некоторые поля нужно преобразовывать, а не показывать как есть.
Подробнее напиши, непонятно. Если тебе надо волшебным каким-то образом модифицировать вывод в джейсон - напиши свой нормалайзер/сериалайзер (в зависимости от задачи)
Sergei
Трансформация значений свойств энтити не ложится на плечи энтити вообще
Anton 🐻
Подробнее напиши, непонятно. Если тебе надо волшебным каким-то образом модифицировать вывод в джейсон - напиши свой нормалайзер/сериалайзер (в зависимости от задачи)
которые потом сериализую в джейсончик либо передаю в сторонние сервисы. т.е. н етолько сериализация, но и передача отдельных значений.
Sergei
которые потом сериализую в джейсончик либо передаю в сторонние сервисы. т.е. н етолько сериализация, но и передача отдельных значений.
Ну или я неверно понимаю задачу, или тебе нужен сервис, который примет на вход твою энтити, получит нужные значения из нее, превратит как тебе надо и вернет.
Sergei
Ну или отправит в твои сторонние сервисы
Sergei
Не зная подробностей - сложно советовать. По идее тебе надо рыть в https://symfony.com/doc/current/serializer.html сторону
Anton 🐻
ещё раз говорю
Anton 🐻
что сериализация это тодлько один из кейсов
Anton 🐻
допустим у меня в коде 100500: $Item = $this->EntityManager->getRepository(Item::class)->find($id); и они будут неконтролируемо появляться. нужно чтобы $Item->getHuitem() всегда возвращало преобразованное значение. в том числе и при сериализации
Anton 🐻
но преобразование нужно производить через доп.сервис, который непонятно как прокинуть в ентити. скорее всего никак. поэтому нужна какая-то обёртка, которую бы возвращала доктрина вместо голой ентити при запросах.
Sergei
В теории нужная тебе обертка называется "репозиторий", если не наследоваться от доктриновского и написать свой
Sergei
Туда ты можешь спокойно провесить любые нужные тебе зависимости
Sergey
Можно и наследоваться, но переопределить некоторые методы
Sergey
Хотя это больше похоже на говнокод
Sergey
есть https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/events.html#lifecycle-events
Sergey
в том числе событие postLoad
Sergei
Ну Марко (Окрамиус, автор Доктрины) не рекомендовал уже наследовать свой репозиторий от Доктриновского, как это ни удивительно звучит
Sergey
вешаешь листенер, проверяешь класс(лучше через интерфейсы), делаешь свои дела
Sergey
лучше наверное подумать над бизнес логикой и исключить такие моменты, но если уж совсем нельзя, то сделал бы севрси прослойку над репозиторием и дергал не $this->EntityManager->getRepository, а $this->myService->getRepository и в нем творил бы преобразования
Anton 🐻
не безопасно, другой разработчик может этого не знать или забыть, и получит некорректное поведение.
Sergei
Ну для этого дока и существует
Sergei
Что бы все делали одинаково
Sergei
Так можно докатится, что другой разработчик будет на нативном скл писать))
Anton 🐻
пока в голову приходит 1 вариант. в ентити вообще запретить отображения поля. а если оно нужно по требованиям то добавлять его ручками в преобразованном виде.
Anton 🐻
Ну для этого дока и существует
никто не будет читать доку постоянно, либо может н еобратить внимание, вылетит из головы, заффектит другой код, ситуаций полно.
Sergei
никто не будет читать доку постоянно, либо может н еобратить внимание, вылетит из головы, заффектит другой код, ситуаций полно.
Есть архитектор, ревью наконец. Ты решаешь организационную проблему техническими средствами. ИМХО, это неверно. Написал репозиторий, разрабов остальных оповестил, что использовать только его, потом поймаешь на использовании чего-то еще —- дашь по рукам.
Anton 🐻
Есть архитектор, ревью наконец. Ты решаешь организационную проблему техническими средствами. ИМХО, это неверно. Написал репозиторий, разрабов остальных оповестил, что использовать только его, потом поймаешь на использовании чего-то еще —- дашь по рукам.
я за автоматизацию и решения проблемы раз и навсегда. если разработчик должен постоянно держать в голове множество нюансов - то рабочий процесс говно, а руководитель мудак
Anonymous
@byhaskell будет жить. Поприветствуем!
Alexander
Привет. Можете подсказать пожалуйста, нужно делать две разных валидации при создании сущности и при редактировании, где можно об этом почитать? А то ExecutionContextInterface в сервисе работать отказывается, а на кастомных валидациях проблема с привязкой к создаю и редактированию
Yuri
а че не получается
Yuri
там в модели можно подрубить все constraints и юзать хоть по 10 проверок на одно свойство модели
Yuri
сек
Yuri
типа так
Yuri
ну тут в аннотациях просто прописываешь
Yuri
если стандартные подходят конечно
Yuri
там можно задавать группы валидации
Yuri
и в самих валидаторах прописывать эти группы
Yuri
а в форме задавать эту группу
Yuri
в smfony form
Yuri
https://symfony.com/doc/current/validation/groups.html
Yuri
тут с примерами
Alexander
Тьфу,я с группами делал, а указать при валидации их забыл, спасибо
Yuri
нзч. я тож часто забываю
Alexander
еще плюсом к этому сделал два способа в один и сижу ошибки считаю не понимая ничего 😂 веселый понедельник, спасибо еще раз)
Sergue
Сегодня вторник)
Alexander
бляя...вторник точняк) Зима в город пришла что поделаешь, два часа в очереди в сто дают свое)