Roman
Всем привет. Подскажите, запутался - где и как включается second level cache? на оф сайте что-то ничего нет про это. Задача - кешировать результаты запросов.
Юра
https://symfony.com/doc/current/reference/configuration/doctrine.html
Roman
оо, спасибо
Roman
что-то не помогает, в счетчиках как были нули, так и есть. В коде дополнительно нужно что-либо где-то прописывать?
Юра
Та вроде нет
Roman
Странно, почему не использует кеш тогда
Юра
$query->enableResultCache()
Юра
А это есть у тебя?
Roman
return $q->getQuery()->enableResultCache(60*60)->getResult();
Roman
похоже, что есть...
Roman
единственное что, я адаптер редиску поставил. Сейчас попробую в дефолт скинуть
Roman
неа... в доктрине все так же по нулям
Roman
при этом на отдельных запросах вроде что-то начало работать
Roman
если по разделам походить
Юра
Мод у тебя там даты какие-то используются иди динамические параметры
Юра
И вообще поставь варниш и не придумывай )
Юра
Сложно сказать что тас не так. Я в доке доктрины вижу намного больше параметров конфигурации кеша чем в симфлнийском конфиге
Alexander
А че так можно было?
Микаэл
Прошу прощения, не знал) может есть чаты, где можно приглашать компетентных разработчиков симфони в команду?)
Roman
а можно что? )
Дмитрий
что происходит? )
Roman
я тож не пойму :)))
Alexander
Опытные симфони разработчики в день получают по 10 предложений, ваше не показалось мне интересным.
artem
всем утро) что ставить для редиски?
artem
щя документы пишу) давно редиску не юзал. хочется через доктрину
Юра
redis cache adapter
Roman
привет всем. Есть шаблон twig, который в цикле вызывает адовое кол-во include других шаблонов (карточки объектов). Можно ли это как-то ускорить? на ~500 объектов аж 42 секунды формируется страница... пагинация не очень подходит. Можно ли средствами twig решить вопрос?
Vlad
Ну и скорее всего у тебя много запросов в бд
Vlad
Если в шаблонах подгружаются данные, значит ты делаешь что то не так
Alexey Mishurovskiy
Всем привет. как отключить i18n роуты для api?
Alexey Mishurovskiy
А то вот такая хрень происходит
Alexey Mishurovskiy
Alexey Mishurovskiy
Если я из второго определения убираю prefix то добавляется 3-й роут. exclude почему то не работает
Alexey Mishurovskiy
Еще вопрос - кто работал с динамической схемой ? то есть есть объемт ответа, в нем поле data и надо сваггеру подсовывать нужных объект в аннотации котроллера. не могу понять как это сделать и можно ли в приницпе
Alexey Mishurovskiy
Спасибо, дошел уже сам почти до этого
Alexey Mishurovskiy
а какая аннотася у $items?
Alexey Mishurovskiy
ответ у меня выглядит вот так :
Alexey Mishurovskiy
где то у меня логика ломается. не могу понять где
Alexey Mishurovskiy
Огонь, получилось! @haidukua спасибо большое
Alexey Mishurovskiy
итог
Denis
всем привет! кто знает почему доктрина возвращает массив вместо объекта?
Vlad
Посмотри на select и подумай
Denis
Посмотри на select и подумай
да там опечатка на скрине, но она ни на что не влияет. Судя по всему в доктрине это делается через ж: https://stackoverflow.com/questions/24039101/fetch-highest-id-from-database-via-doctrine - это мне помогло.
Vlad
да там опечатка на скрине, но она ни на что не влияет. Судя по всему в доктрине это делается через ж: https://stackoverflow.com/questions/24039101/fetch-highest-id-from-database-via-doctrine - это мне помогло.
Ну как бе влияет, ты сперва просишь достань мне полностью сущность, а потом вторым селектом указываешь нужные поля. Вопрос:во что должна гидрировать данные доктрина, если ты указал отдельные поля?
Vlad
Если сильно хочется получить объект, то можно завернуть в dto
Vlad
https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/dql-doctrine-query-language.html#new-operator-syntax
Andrey
И массив возвращает?
Andrey
А если через репозиторийтот же запрос будет? (мысли вслух)
Denis
нет это возвращает объект. Как я выше написал, мне помог ответ со stackoverflow. вопрос решен спасибо.
Andrey
Но звучало так, словно без второго селекта тоже массив
Denis
Но звучало так, словно без второго селекта тоже массив
там суть в том что мне нужен был MAX обязательно а если написать просто ->select('log') - тогда все ок - Объект.
Andrey
У объекта нет max, потому теье и не возвращало. В общем сам себе проблему придумал)
Alexey Mishurovskiy
А зачем это вот все ?
Alexey Mishurovskiy
$result = $this->getEntityManager()->getRepository(UserDoctorRecommendationExtractionLog::class) ->orderBy('t.lastExtractionAt', 'DESC') ->setMaxResults(1) ->where('t.userId = :userId') ->setParameter('userId', $userId, ParameterType::INTEGER) ->getQuery() ->getOneOrNullResult(); Не проще ?
Alexey Mishurovskiy
и доктрина все сделает сама
Alexey Mishurovskiy
Вопрос. как перед денормализацией автоматически прогнать перобразование данных? Кейс - есть номер телефона, который в сущность User надо загнать в нормализованном формате (libphonenumber). Думал есть callback для дернормализации, но нет, он только для нормализации. Про сохранении сущности в БД это делается у меня в Doctrine Events. Но при этом не проходит валидация, например UniqueEntity из-за неправльного формата не находит запись в БД
Eldar
Еще бы сложнее описал проблему
Alexey Mishurovskiy
Если проще - как организовать DataTransformer как в формах, только в сериалайзере
Alexey Mishurovskiy
У любой сущности, если у нее поле phone нужно его програть через нормализатор телефона
Алексей Анатольевич
Нужен совет. Решил вынести некоторую логику за пределы контроллеров, в некий общий сервис. Столкнулся с проблемой переноса создания форм. Точнее метод createForm() принадлежит только AbstractController классу. Там форма билдится как`$this->container->get('form.factory')->create()`. Как быть? Не могу вникнуть и понять как мне вытащить нужные классы в сервис.. или я уже тупить начал..
Алексей Анатольевич
В свой сервис инжектить FormFactoryInterface
из того же контроллера? Или в конструкторе, где лучше? Если из контроллера, то тогда из всех нужно будет..
Shokha
Вот вопрос по инжектить
Shokha
Сколько классов можно инжектить в конструкторе?