TGViewer
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter @phpproglib · 10.5K subscribers
Post #3981 3.14K
Объекты значений в PHP 8: расширенное использование

Этот материал является частью цикла статей про объекты-значения, как и вчерашний пост. Он занимается пониманием и использованием объектов-значений (Value Objects), классифицируя их на три основных типа: Простые, Сложные и Композитные.

1️⃣Простые объекты-значения: Они инкапсулируют единственное значение, представляя основные концепции в предметной области. В статье используется пример объекта-значения Age, включая рекомендации, такие как соблюдение принципа единственной ответственности, неизменяемость, валидация, строковое представление и метод для проверки равенства.

2️⃣Сложные объекты-значения: Они обрабатывают более сложные структуры или несколько атрибутов, моделируя более богатые концепции в предметной области. Статья иллюстрирует это на примере объекта-значения Coordinates, представляющего географические координаты. Здесь акцент делается на структурированном представлении, валидации, значимом строковом представлении и методе для проверки равенства.

3️⃣Композитные объекты-значения: Они объединяют несколько простых или сложных объектов-значений в единый комплексный объект, представляя более сложные концепции в предметной области. Примером служит композитный объект-значение Address, состоящий из улицы, города и почтового индекса. Здесь рекомендации включают композицию, абстракцию, значимое строковое представление и метод для проверки равенства.

Здесь также обсуждаются фабричные методы и закрытые конструкторы, на примере DateTimeValueObject. Это демонстрирует гибкость использования закрытых или открытых конструкторов в зависимости от дизайнерских предпочтений.

Кроме того, рассмотрены альтернативы исключениям, представляя концепцию Either и объединенные типы (Union Types) в PHP 8.0 для обработки ошибок. Оба подхода предоставляют гибкость управления результатами, где Either предлагает структурированный метод, а объединенные типы соответствуют философии «позвольте ему быстро завершиться».
Telegram Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter Объекты-значения в PHP 8: Сущности 🧱 Value Objects (Объекты Значений): Value Objects — незаслуженно недооценные герои нашего кода, приносящие неизменяемость и предсказуемость в наши приложения. Они инкапсулируют небольшие кусочки данных, обеспечивая постоянство…
  • 👍 6
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 →