__get
и __set
- магические методы, которые обычно следует использовать для решения сложных задач, а не в качестве основы для проектирования.
Например, я попал в проект, где мне пришлось проанализировать сайт, который использовал ООП с глубоким наследованием (> 2), а один из важных базовых классов имел открытое свойство под названием name
. Тем не менее, он также имел геттеры и сеттеры (getName
, setName
), которые обращались к этому свойству только с целью его получения и установки. Многие классы с именем getName
и столько же обращаются к свойству name
напрямую! Не отличный дизайн.
Магические методы позволили мне решить проблему, переименовав свойство в _name
и сделав его приватным, форсируя все запросы к свойству через геттеры и сеттеры.
При этом нет необходимости в методах получения и установки, если вы просто обрабатываете свойство как переменную. В таком случае просто сделайте собственность публичной!
В вашем случае, поскольку происходит проверка / дезинфекция, вы должны использовать геттеры и сеттеры и кодировать их напрямую как методы (вместо ненужных накладных расходов от магических методов).