Pull to refresh

Comments 8

Если в WordPress ничего не поменялось в плане пакетных менеджеров (а я сомневаюсь), то это хорошо лишь до тех пор пока какой-то другой плагин или тема тоже не захочет использовать доктрину, тогда, как правило, возникают конфликты версий/автолоадера/чего хочешь и просто так их не решить.

В своё время мы пытались настроить перетаскивание пакета к себе в неймспейс при деплое, но от этой идеи отказались т.к. готовые инструменты работали не очень хорошо, а писать своё было долго и дорого. В итоге пакет просто заменили на самопис, благо небольшой был.

Есть ли у вас решение для подобных проблем?

Для wordpress есть wpackagist, но к сожалению это никак не решает проблему неймспейсов. Можно только надеяться на чудо, что нет пересечения неймспейсов с плагинами, которые ты используешь. На практике если использовать актуальные версии популярных плагинов, то проблем особо не возникает. Уже около 10 проектов мной было интегрирован Symfony фреймворк с Wordpress и пока работает все стабильно.

Это N+1 легко решается, например через QueryBuilder

в чем смысл тогда? быстрее тогда уж на чистом SQL. в том же Eloquent это решается ->with('relation'), в доктрине с many to many, one to many жадная загрузка не работает

По дефолту в доктрине ленивая загрузка. Если ленивую загрузку нужно часто использовать, то это оправдано, просто в частных случаях используем $qb->join('relation'). Если же нужна жадная загрузка по дефолту то просто используем атрибут fetch EAGER #[ORM\ManyToMany(targetEntity: Entity::class, mappedBy: 'entities', fetch: 'EAGER')] И уже это будет работать без QueryBuilder

не работает это, fetch: EAGER только для связей 1 к 1 работал, неужели за пол года что то поменялось?

А можно пример n+1 в доктрине?

Sign up to leave a comment.

Articles