Павел
Приветствую :) Что-то словил неожиданное но в тоже время логичное поведение с one-to-one.
Имеются сущность one to one, nullable. Bidirectional.
Кейс: загрузка и подставление изображения (отдельная сущность) к сущности.
При смене изображения, необхоимо чтобы прошлое стало с null связью а во второй подставился id.
На проблема в том, что доктрина генерит uniq индекс. И когда все это в одной транзакции под flush (где нет возможности управления какая сущность первая зайдет в транзакцию) - падает по констрейнту.
Решение пока нашли - это делать в двух транзакциях (сначала null в старом изображении, потом установка id в новом), но какая то херня)
Может что делаем неверно, с точки зреня вообще использования one to one.
Konstantin
безотносиительно вопроса: я предпочитаю 1-1 избегать, от них больше проблем. проще в родительской сущности иметь нуллабельные поля под вашу картинку. меньше джойнов - лучше спится, особенно с орм, где забыл поджойнить где-то продукт с картинкой и у тебя страница делает тыщи запросов
Konstantin
а если сделать это 1-m? уника тогда не будет
Konstantin
а целостность (что картинок не более 1) контролировать кодом. ну или джоб ночами запускать какой?
Павел
Просто по логике one to one, в коде будет one to many - программеры в будущем будут путаться
Павел
Павел
И будут ломать голову, а че такое а зачем
Konstantin
ну приложение их не увидит, приложение геттером/сеттером/аддером будет оперировать. но я согласен, что это не супер-очевидно для разрабов
Konstantin
но такова жизнь: 1-1 - это 1-m с уником, я не уверен что это можно изменить или обойти как-то иначе
Павел
Konstantin
в целом, с доктриной так или иначе вас ждут проблемы с неудобными связями. типа м-м с дополнительным полем в таблице связке нельзя сделать, приходится делать 1-m + m-1
Павел
Просто one to one - это по идее логика же приложения, а не базы. А выходит зашилисб на базу :(
Павел
Konstantin
ну я говорю, можно срезать острые углы и оставить большой коммент в сущности, типа так надо
Павел
Павел
Т.е. если бы констрйнта не было, то 1-1 в сущностях вполне был бы рабочим все равно, даже если бы база стала 1-м
Павел
Т.е. если я врчную уберу констрейнт и не буду пользоваться дифф - все ок будет
Konstantin
это тоже легкое wtf
Konstantin
потому что разраб в базе видит одно, а в коде другое
Konstantin
я вам точно говорю, ограничьтесь геттерами как я выше говорил и все
Павел
Павел
Павел
Nikolay
Nikolay
Павел
Не совсем понял
Я тоже не совсем понял, что остается "только с одной стороны", речь о констрейнте в базе. Он как был так и останется независимо от bidirectional
Sergey
Всем привет. Подскажите, а что с symfony flex случилось? Наш опс сказал пакет выпилить. Да и композер он стопорит из-за недоступности хоста. Есть какая-то ссылка на пост что случилось?
Vlad
переехали на гитхаб, раньше была отдельная инфраструктура
Sergey
Так а как щас симфа без флекса будет рецепты выполнять?
Vlad
рецепты дергается с гитхаба)
Sergey
Так сказали пакет выпилить…
Vlad
Konstantin
наверное чтобы у вас на сайте баннер в поддержку украины не появился
Иван
Konstantin
флекс - достаточно простая плоскость внедрения. там выполняются 3rd-party скрипты без особого контроля, сегодня скрипт один - завтра другой. я не то чтобы оправдываю это, но безопсники мыслят примерно так
Konstantin
ну и сам лично я тоже запрещаю флекс у себя в компании, конфигурируйте блеать руками, больше понимания совершенных действий останется
Иван
Юра
А разве флекс наоборот не декларативный?
Юра
По-моему там идет конфиг файл типо это скопируй сюда, а тут зарегистрируй бандл
Dmitriy
Павел
Embeded уже советовали?
Не решает задачи. Решил убрать связь на стороне имейджа, и сделать на стороне второй сущности одностороннюю.
Dmitriy
флекс очень легко выпилывается, смотрите рецепт
artem
А как переписать самопись от школоты, не ебнутся + не выложить на говнокод?
Kirill
Юра
artem
Кто слышал про функцию include по всей программе?😧
Nikolay
artem
Бывает код и похуже
Та хоть mysqli вместо mysql уже счастье. Подготовленными запросами даже не пахнет
artem
Мне уже кажется что зп это рейт плюс услуги психолога
Nikolay
Юра
Любой самый хреновый код, это много много мелких кусков нормального кода. )
Юра
Смотри позитивнее
Юра
А работодателя можешь поздравить с тем что он сэкономил и попал на деньги
Null
Что за аншлаг сегодня?)
artem
Юра
Есть что-то типо вордпресса на симфони?
Nikolay
Юра
Ну это скорее на компонентах симфы, вроде как там же не симфа целиком
Null
sulu.io
Alexey Mishurovskiy
sulu.io
Она пипец сложная для осознания
Alexey Mishurovskiy
Но прикольная
Alexey Mishurovskiy
И для нормального блога требует эластик
Юра
Блин почему эта регулярка не матчит строку?
^.*$
Юра
если в строке несколько строк
Konstantin
флага /m не хватает
Konstantin
preg_match('/^.*$/m', $subject, $matches)
Юра
да с флагом работает
Юра
а почему без него не работает
Юра
$ вроде просто говорит что позиция в конце строки
Юра
любой симбол в конце строки