Все самое полезное для пхпшника в одном канале.
По рекламе: @tproger_sales_bot
Учиться у нас: clc.to/M561SQ
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Post #3885
3.33K
Объекты-значения в PHP 8: создание лучшего кода
Статья рассматривает использование шаблона проектирования «Value Object» для повышения качества кода.
❗Прежде чем перейти к Value Objects, надо выделить проблемы, связанные с примитивными типами данных, такие как отсутствие встроенных проверок на корректность данных, возможность перепутать порядок аргументов в функции и случайные изменения данных.
🔧Value Objects могут решить эти проблемы. Предоставляется пример, где в конструкторе осуществляется валидация данных. Это позволяет устранить дублирование логики проверки в разных местах кода.
Далее описаны три основных принципа работы с Value Objects:
Неменяемость (Immutability): Value Objects не должны изменяться после создания. В PHP 8.1 введены readonly-свойства для упрощения реализации неменяемости.
Сравнимость (Comparability): Обеспечение возможности легкого сравнения объектов Value Objects для определения их идентичности или различия.
Постоянство данных (Consistency): Value Objects всегда должны представлять валидные данные, и валидация должна выполняться в конструкторе объекта.
Автор также подчеркивает важность легкости отладки (Debuggability) Value Objects, предлагая использовать метод __toString() для простых объектов и toArray() для составных объектов.
Статья рассматривает использование шаблона проектирования «Value Object» для повышения качества кода.
❗Прежде чем перейти к Value Objects, надо выделить проблемы, связанные с примитивными типами данных, такие как отсутствие встроенных проверок на корректность данных, возможность перепутать порядок аргументов в функции и случайные изменения данных.
🔧Value Objects могут решить эти проблемы. Предоставляется пример, где в конструкторе осуществляется валидация данных. Это позволяет устранить дублирование логики проверки в разных местах кода.
Далее описаны три основных принципа работы с Value Objects:
Неменяемость (Immutability): Value Objects не должны изменяться после создания. В PHP 8.1 введены readonly-свойства для упрощения реализации неменяемости.
Сравнимость (Comparability): Обеспечение возможности легкого сравнения объектов Value Objects для определения их идентичности или различия.
Постоянство данных (Consistency): Value Objects всегда должны представлять валидные данные, и валидация должна выполняться в конструкторе объекта.
Автор также подчеркивает важность легкости отладки (Debuggability) Value Objects, предлагая использовать метод __toString() для простых объектов и toArray() для составных объектов.
- 👍 4
- ❤ 3





