Кирилл
Че, по голове клавиатурой бьют?
artem
ребята, случаем никто не знает. можно ли в mysql посмотреть текущие prepared statement
Нет. Есть вариант переписать их на обычные запросы и посмотреть тайминг
Alexey Mishurovskiy
Кто-то запускал штатный веб сервер симфони в докере? symfony server:stop //специально добавил в попытке решить проблему symfony server:start --document-root="./public" --no-tls --port=80 -vvv
Alexey Mishurovskiy
Alexey Mishurovskiy
и типа если пробовать несколько раз раз на 5-й он стартанет
Alexey Mishurovskiy
запускается соответственно в entrypoint
Гречушников
https://stackoverflow.com/questions/28676032/symfony2-choice-constraint-using-doctrine-repository это нормально делать валидацию в самой энтити?
Alexey Mishurovskiy
Alexey Mishurovskiy
а это уже выглядит как дичь
Гречушников
спасибо )
Alexey Mishurovskiy
тогда можно туда заинжектить сам энтити менеджер и сделать из дата меппера актив рекорд ))
Alexey Mishurovskiy
спасибо )
Используй компонет Validator
Гречушников
да да, меня просто смутил этот момент. как бэ понимаю, что так делать нельзя, но там советуют еще и лайки стоят
Daria
нет это не нормально для этого в нее надо заинжектить валидатор
Почему constraint аннотации валидатора в энтити это дичь?
Daria
Где я писал про аннотацию?
В вопросе и ответе на SO они присутствовали, поэтому истолковала так
Alexey Mishurovskiy
Речь про инжект валидатора в сущность
Гречушников
ребят. а в доктрине есть так называемые скоупы? именнованные фильтры.
Aleksandr
это как хрень в ларвеле?
Гречушников
угу
Aleksandr
нет
Aleksandr
зачем они там?)
Гречушников
ну, чтобы не дублировать одни и те же фильтры в репозитории. например получить активный проект. его же но с пользоватлем и т.д.
Aleksandr
а параметры религия не позволяет?)
Aleksandr
зачем же дублировать
Maxim Kainov
Гречушников
спасибо, уже посоветовали этим воспользоваться
Ilya 🃏
Привет, кто знает, почему такая ошибка вылетает при попытке получить любые данные из бд в любой команде?
Ilya 🃏
И такое происходит только при запуске кода через команду, абсолютно тот же код запущенный в контроллере работает отлично
.exe
иногда терминалы не воспринимают кириллицу
Гречушников
Надо за рекламу денег уже брать )
Maks
Надо за рекламу денег уже брать )
типа ты куда то ссыль запостил?
Гречушников
В пхп раша
Maks
Ilya 🃏
иногда терминалы не воспринимают кириллицу
А что можно попробовать сделать вообще? Гуглил со всех сторон, ничего не нашёл
Ilya 🃏
😢
Dmitry
Привет, кто знает, почему такая ошибка вылетает при попытке получить любые данные из бд в любой команде?
Смотрите, что у вас происходит в библиотеке, которая преобразует binary в guid-строку и обратно Точнее сказать у вас почему-то НЕ преобразует Возможно не выполнили какие-то миграции, которые добавляют функции преобразования в БД возможно ваша версия БД не поддерживает такое преобразование
Ilya 🃏
Из-за формата Uuid
Dejan
hej guys, i have a question on symfony 4 messenger i need to dispatch message in serialized array format what is the best solution? do i create custom serializer encode method or there is a better solution ? spasiba
Anonymous
Гуманоидный Тайфун
Maxim Kainov
Из-за формата Uuid
Зачем отдельный тип для этого делать, сделай стринг
Dmitry
Зачем отдельный тип для этого делать, сделай стринг
В мускуле varchar как primary guid может вызвать тормоза Binary Database Columns In the previous example, Doctrine will create a database column of type CHAR(36), but you may also use this library to store UUIDs as binary strings. The UuidBinaryType helps accomplish this. https://github.com/ramsey/uuid-doctrine
Dmitry
- UUID has 36 characters which make it bulky. - InnoDB stores data in the PRIMARY KEY order and all the secondary keys also contain PRIMARY KEY. So having UUID as PRIMARY KEY makes the index bigger which cannot be fit into the memory - Inserts are random and the data is scattered. https://www.percona.com/blog/2014/12/19/store-uuid-optimized-way/
Dmitry
если используется библиотека от ramsey то надо вручную создавать функции в БД You can use this format in mysql cli with these two functions: CREATE FUNCTION `uuid_to_ouuid`(uuid VARCHAR(36)) RETURNS BINARY(16) DETERMINISTIC RETURN UNHEX(CONCAT( SUBSTR(uuid, 15, 4), SUBSTR(uuid, 10, 4), SUBSTR(uuid, 1, 8), SUBSTR(uuid, 20, 4), SUBSTR(uuid, 25, 12) )); CREATE FUNCTION ouuid_to_uuid(uuid BINARY(16)) RETURNS VARCHAR(36) RETURN LOWER(CONCAT( SUBSTR(HEX(uuid), 9, 8), '-', SUBSTR(HEX(uuid), 5, 4), '-', SUBSTR(HEX(uuid), 1, 4), '-', SUBSTR(HEX(uuid), 17,4), '-', SUBSTR(HEX(uuid), 21, 12 ) )); которые преобразуют binary -> string, string -> binary
Dmitry
Там же дело не в варчар, а в перестановке частей уида
So having UUID as PRIMARY KEY makes the index bigger which cannot be fit into the memory
Maxim Kainov
So having UUID as PRIMARY KEY makes the index bigger which cannot be fit into the memory
Бинари разве станет меньше весить?
Maxim Kainov
Let’s rearrange the total sequence making the UUID closer to sequential. This makes the inserts and recent data lookup faster.
Dmitry
Let’s rearrange the total sequence making the UUID closer to sequential. This makes the inserts and recent data lookup faster.
это одна из проблем, а проблем две - размер и порядок https://speakerdeck.com/ramsey/identify-all-the-things-with-uuids-true-north-php-2016?slide=59
Maxim Kainov
So having UUID as PRIMARY KEY makes the index bigger which cannot be fit into the memory
Может не хватать памяти, но не значит, что это причина тормозов.
Maxim Kainov
А объем памяти, выделяемой под индексы настраивается вроде как
Dmitry
Может не хватать памяти, но не значит, что это причина тормозов.
это старый холивар так и не пришедший к единому мнению. У человека это используется и вызывает проблемы при преобразовании. Причем только в консоли. Могу предположить что: - разные .env с разными базами; - разные настройки php веб сервера и cli что еще может быть?
Гречушников
а по правилам камелькейса как правильно писать personFirstName или personFirstname
Гречушников
firstname это одно слово или составное? personBirthday или personBirthDay )
.exe
каждое новое слово с большой буквы
Гречушников
да я понимаю, но я могу ошибаться, но мне кажется firstname это одно слово. нет? ... судя по яндексу, это два слова...
Гречушников
а bd это все же одно
.exe
firstname это одно слово или составное? personBirthday или personBirthDay )
когда ты посмотришь на переменную, ты быстрее прочтешь где firstName, чем то, где пишет firstname первое название(имя) first name
.exe
это 2 слова
Гречушников
Хлопцы. Вот в доктрине есть ембедед. у меня в таблице пара десятков полей. я разнес их по классам. круто удобно. а есть ли такой функционал, чтобы я мог разнести содержимое json поля? там много всякой ереси хранится, хотелось бы ее как то регламентировать
Гречушников
Спасибо
Гречушников
Благодарю
Гречушников
https://anil.io/blog/symfony/doctrine/symfony-and-doctrine-pagination-with-twig/ подскажите, с пагинацией это верное решение? как то сложновато с итератором на первый взгляд
Сергей
просто гидрировать не сразу будет, а так все ОК
Гречушников
просто гидрировать не сразу будет, а так все ОК
разреши еще второй вопрос. я тут заиспользовал функционал embedded в пт вроде о нем спрашивал. а как у него обстоят дела с производительностью? не в курсе? изначально при использовании у меня была мысль, что компилерпасс оптимизирует все это. но я еще не проверял. если есть опыт поделитесь плз
Сергей
https://anil.io/blog/symfony/doctrine/symfony-and-doctrine-pagination-with-twig/ подскажите, с пагинацией это верное решение? как то сложновато с итератором на первый взгляд
на какие нить pagerfanta не смотрели? там есть форк для 5.0. разные адаптера + учтены хинты, если у тебя есть join в запросах
Гречушников
Сергей
либо вот, небольшая обертка над доктриновской. https://github.com/symfony/demo/blob/master/src/Pagination/Paginator.php#L47 строка на момент с хинтом