Лучшие практики php для проверки сеттера при перегрузке свойств класса - PullRequest
0 голосов
/ 01 октября 2010

У меня есть класс, который использует магический метод __set.Одно из свойств класса может быть установлено только с определенным диапазоном строковых значений, лучший пример, который я могу придумать, - это тип данных mysql ENUM ('value_one', 'value_two', 'value_three').

Буду ли я размещать условные операторы в методе __set, чтобы различать, какое свойство устанавливается и допустимо ли значение для этого свойства?

Считают ли большие операторы switch внутри метода __set небрежной практикой, является ли их лучшим способом получения желаемых результатов?

Спасибо, Бен

Ответы [ 2 ]

0 голосов
/ 01 октября 2010

Буду ли я ставить условные заявления в методе __set, чтобы различать между которыми устанавливается свойство и является ли значение действительным для это свойство?

Да для первой части, нет для второй.

Большие операторы switch внутри __set метод считается небрежной практикой, это их лучший способ дает желаемый результат?

Ваш метод __set должен определить, какая переменная пытается быть установлена, а затем передать остальные функциональные возможности частному установщику setParticularVar. setParticularVar будет содержать логику, специфичную для проверки этой переменной, и может выдать исключение, если передано недопустимое значение.

В качестве альтернативы вы могли бы сделать приватный установщик общедоступным, разрешив два способа установить переменную, но это не так желательно, поскольку два способа установить значение не так чисты.

0 голосов
/ 01 октября 2010

Функция __set может проверять наличие метода с именем, аналогичным presetVariableName, который вызывается и передает новое значение в качестве параметра.

Эта функция может затем выполнить логику проверки и вернуть true или false относительно того, является ли она действительной или нет.

...