TGViewer
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter @phpproglib · 10.5K subscribers
Post #3979 3.02K
Объекты-значения в PHP 8: Сущности

🧱 Value Objects (Объекты Значений):
Value Objects — незаслуженно недооценные герои нашего кода, приносящие неизменяемость и предсказуемость в наши приложения. Они инкапсулируют небольшие кусочки данных, обеспечивая постоянство их состояния. Такая предсказуемость упрощает наш код и способствует общей стабильности системы.

👥 Entities (Сущности):
В отличие от Value Objects, Entities обладают уникальной идентичностью, позволяя им изменять свое состояние и сохранять свою индивидуальность. Давайте глубже погрузимся в качества, которые определяют сущность в наших PHP-приложениях.

Основные характеристики Entities включают:

1️⃣Идентичность: У Entities есть уникальный идентификатор, который является ключевым для сценариев, где важны устойчивость и изменяемость.
2️⃣Изменяемость: В отличие от Value Objects, Entities могут изменять свое состояние в течение жизненного цикла, приспосабливаясь к различным сценариям.
3️⃣Устойчивость за пределами одной транзакции: Entities сохраняются за пределами одной транзакции, обеспечивая их долговечность через взаимодействие с системой. В статье рекомендуется использование шаблона Repository для хранения и извлечения Entities.

Здесь представлен концепт Immutable Entities, достигаемый с использованием открытых только для чтения свойств и создания новых экземпляров для каждого изменения. Также рассматривается проблема управления версиями сущности, предлагая решение на основе создания хеш-строки для стабильной и сравнимой идентификации версии.

Демонстрируется интеграция Value Objects в Entities, улучшающая ясность кода и поддерживаемость. Выделены практические соображения при выборе между Value Objects и Entities в зависимости от конкретных требований системы.
DEV Community Value Objects in PHP 8: Entities Table of contents Introduction Entities Identity in Entities Mutability and State...
  • 👍 9
  • ❤ 1
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 →