TGViewer
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter @phpproglib · 10.5K subscribers
Post #4392 2.89K
Избегание ловушек при использовании Doctrine ORM: Влияние type hint'a

Описывается случай, когда тип, указанный в определении колонки, не совпадает с типом свойства в сущности, но Doctrine не выдаёт предупреждения об этом.

Для демонстрации проблемы представлен пример сущности Book, в которой тип свойства price — float, а тип колонки в базе данных — decimal. В таком случае, при использовании Doctrine, при изменении свойства price не всегда корректно определяется факт изменения значения, что может приводить к неожиданным запросам на обновление в базе данных.

Статья объясняет механизм работы Doctrine, особенно уделяя внимание классу UnitOfWork, который отслеживает изменения сущностей. Проблема возникает из-за того, что Doctrine использует операцию сравнения по идентичности при определении изменилось ли значение свойства. В результате, даже незначительные изменения могут привести к неожиданным запросам на обновление.

Для избежания таких проблем предлагается несколько подходов, таких как синхронизация типов колонок и свойств сущностей, или допуск автоматического вывода типов на основе другого.
1823.pl Avoiding Pitfalls with Doctrine ORM: The Impact of Type Hints - d1823.pl How incorrect type hints can affect the performance of your persistence layer.
  • 👍 5
More from @phpproglib
  1. Oct 2, 2026🎹 Что делать после ChatGPT? Следующий шаг — AI-агенты. Они не просто отвечают на запросы,…
  2. Sep 30, 2026🔥 Последний день для разработчиков AI уже пишет код. Теперь важнее научиться встраивать е…
  3. Sep 30, 2026🐸 Библиотека пхпшника
  4. Sep 29, 2026💡 Laravel-фича, которая спасает тесты от случайных запросов Http::preventStrayRequests()…
  5. Sep 28, 2026🔐 ramsey/uuid — UUID без самописного кода Библиотека помогает генерировать, парсить и вал…
  6. Sep 28, 2026🤔 Что выведет код? ❤️ — 1 🔥 — 2 👍 — 12 👾 — Fatal error 👇 Правильный ответ (нажми, что…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →