Dmitriy
А там есть какие то плюсы после 8 уровня?
с mixed в основном.. еще можно включить phpstan-strict-rules с Bleeding Edge
Katulos
Джентльмены, есть примеры Entity/Repository но без доктрины? Грубо говоря, хочется как в доктрине, но данные забирать не с субд а из более других мест
Dmitriy
А в чем проблема? Собирай, репозиторий же возвращает списки сущностей. В нем вместо запросов к БД, буду запросы к "более другим местам".
Katulos
Нашел вот такую статью, в принципе похоже на то, что требуется. https://www.hibit.dev/posts/127/repository-cache-in-symfony
kakoi-to-noob
Ну вот я бы и хотел увидеть примеры кода, чтобы не изобретать велосипед в своем хеловорде
полюбому будет велосипед, допустим считываем строки файла, преобразовываем строку в dto дальше отдаем набор объектов
Дмитрий
Ну вот я бы и хотел увидеть примеры кода, чтобы не изобретать велосипед в своем хеловорде
ну вот доктрина и есть пример) а во всех остальных случаях это и будет велосипед по определению)
Дмитрий
кстати в симфони мире не принято так же, как в мире лары говорить, что репозитории не нужны, потому что они уже есть в орм? 😏
Дмитрий
В мире лары принято так говорить потом что елка это актив рекорд
а с дата маппером уже так говорить нельзя или что? если да, то почему)
Yevgeniy
Актив рекорд сам по себе подразумевает то что модель не анемичная
Yevgeniy
Плюс размер проектов на ар небольшой
Михаил
Джентльмены, есть примеры Entity/Repository но без доктрины? Грубо говоря, хочется как в доктрине, но данные забирать не с субд а из более других мест
Объявляешь в домене интерфейс репозитория, а реализацию в инфре и под копотом пусть что угодно будет. Хоть бд, хоть радис, хоть http клиент
Михаил
Репо - просто абстракция над коллекцией сущностей. Что там как драйвер - не важно
Дмитрий
Я этого не говорил
поэтому я и спросил) я пока связь не улавливаю как дата маппер vs актив рекордс соотносится с тем, что есть репозитории как паттерн)
Katulos
А как отключить эту заглушку, при обращении к корню "http://localhost" проекта?
SK
Никак, в проде ее не будет
шо значит никак. как
Павел
админ не думал как то бороться со спам с помощью языковых моделей? видел недавно доклад где то звучит как интересно покопаться в этом
Михаил
А потом ловить false-positive, вешать сервак во время слишком оживлённого общения или не отлавливать спамеров которые рекламу в виде эмодзи или картинок закидывают
Павел
А потом ловить false-positive, вешать сервак во время слишком оживлённого общения или не отлавливать спамеров которые рекламу в виде эмодзи или картинок закидывают
ну куда же без этого, но видел в чатах отвечают на сообщщение с текстом /spam и сообщение отправляется на исследование потом видимо обучается и в будущем подобное блокируют)
Katulos
Джентльмены, подскажите по роутам. Как должен выглядеть роут принимающий параметры var1, var2, var3, при этом var2, var3 опциональны, могут быть, а могут не быть?
Юра
Может параметры в query засунуть а не в path?
Katulos
А можно пример?
Aleksandr
нафига в роуте опциональные параметры
Katulos
Я сделал так @Route("/get/{number}/{region}/{format}", name="cid_get", methods={"GET"}, defaults={"region": "RU","format": 1}), но кмк кривовато
Katulos
/get/88005553535/RU/1
Katulos
Последние 2 опциональны
Katulos
нафига в роуте опциональные параметры
Чтобы в моем случае, можно было сделать /get/88005553535
Katulos
Но ломается парсер номера, увы, т.к. установлен дефолтный регион, а номер может быть их любого региона
Katulos
Может как предложили выше /get/5446446?region=RU&format=1?
Я и попросил пример роута на такой случай
Nikolay
Я и попросил пример роута на такой случай
Указываешь number и все вроде, @Route("/get/{number}"
Katulos
Указываешь number и все вроде, @Route("/get/{number}"
А далее $request->query->get?
Katulos
Да, для двух опциональных
А если более двух?
Nikolay
А если более двух?
А чем там должно отличаться?
Katulos
Аргумент
Dmitriy
чушь какая-то
Юра
Просто сделай три роута
Юра
На один метод контроллера
Юра
Если так сильно нужно запихнуть в path
#lest
Аргумент
$request->query->get(‘param_1’); $request->query->get(‘param_2’); $request->query->get(‘param_3’); ….. Что тут не понятно, не понимаю)
#lest
Опциональные параметры должны быть в get параметрах, зачем пихать такое в роут
Павел
Все бухают и отмечают
Роман
С Наступившим всех!
#lest
С новым 2024 годом
Юра
new Year(2025)
Павел
ужос)
Ужас это 1 января в 1 час ночи объяснять реквесты)))
Dmitry
Привет! Поле в таблице ulid, например 01943119-f2bf-2e55-9c8b-54f6df1924ca, ORM отдает 01JGRHKWNZ5SASS2TMYVFHJ96A, а DBAL манипулирует сырыми данными, как есть, а как про выгрузке из таблицы, тоже отдавать конвертированное значение?
Viktor
Всем привет и с праздниками. Подскажите, есть ли возможность через QueryBuilder вытянуть результат с сущностями, если присутствует leftJoin и groupBy? $queryBuilder = $this->createQueryBuilder('task') ->select( 'COUNT(task.id) as count', 'workgroup.id as workgroupId', 'workgroup.title as workgroupTitle', 'deal.id as dealId', 'deal.title as dealTitle', ) ->leftJoin('task.workgroup', 'workgroup') ->leftJoin('task.deal', 'deal') ->groupBy('workgroup.id', 'deal.id') ->orderBy('count', 'desc'); Вот так работает, но хотелось бы вытянуть workgroup и deal в виде объектов.
Viktor
каких ?
ORM\Entity
SK
ORM\Entity
Т.е. ты делаешь кастомный селект и хочешь чтобы доктрина сбилдила тебе пыха файл на его основе, засунула в папку entity и подключила ?
Viktor
Мне не нужен файл пыха - все сущности естественно описаны.
Viktor
Anton
Я как-то давно хотел что-то подобное сделать - не нашел решение. Всё-таки группировка не для этого создана
SK
Мне не нужен файл пыха - все сущности естественно описаны.
ещё раз - ты делаешь кастомный селект чтобы в результирующем сете получить набор филдов, ты хочешь чтобы доктрина тебе раскидала этот набор на 3 ентити ?
Viktor
ещё раз - ты делаешь кастомный селект чтобы в результирующем сете получить набор филдов, ты хочешь чтобы доктрина тебе раскидала этот набор на 3 ентити ?
Если есть другое решение без кастомного селекта - то я бы рад был его услышать. В целом задача получить уникальные значения 2-х сущностей из большой таблицы, где эти сущности выступают в качестве полей ManyToOne.
Viktor
Я как-то давно хотел что-то подобное сделать - не нашел решение. Всё-таки группировка не для этого создана
Печалька, тогда получается, придется делать дополнительные запросы, типа получать по списку id через findAll каждую сущность?!
Viktor
Попробуйте в select указать не поля а сущность, возможно что то из этого выйдет. Т.е. select('count(task.id) as count, workgroup,deal ')
Не, такое не пашет. Так как задача относительно разовая, сделал уже костылями. Через кастомный гидратор - долго получилось бы. Всем спасибо.
Дамир Хайбулин
Привет всем! У меня такая проблема: Есть своя админка на работе. Для одной задачи из вендоров скопировал сущность и поставил в проект. Сделал нужные правки и все работает. Но проблема заключается вот в чем: при выполнении команды миграции diff выходит ошибка,что такая таблица уже существует. Но она и так должна существовать, поскольку сущность из вендоров. Подскажите как починить)
Дамир Хайбулин
Нет, не создаётся никак
Дамир Хайбулин
Ладно бы создался, я бы просто удалил его как не нужный. Но он только ошибку выдает
Anton
Вообще, если честно, копирование сущности из Вендора выглядит чем-то странным
Anton
А что за пакет используешь?
Дамир Хайбулин
Да там из-за того что админка своя. На работе свою админку создали и с ней работаем
Anton
Да там из-за того что админка своя. На работе свою админку создали и с ней работаем
Не удивительно, что ошибка падает. Маппинг то и в проекте, и в вендоре. Нужно доку Доктрины смотреть. Наверняка там можно настроить игнорирование неймспейсов маппинга