аксессуар и мутатор?
-
02-10-2019 - |
Вопрос
при использовании doctrine я натыкаюсь на эти 2 слова:аксессуар и мутатор.
используются ли они только в doctrine или они специфичны для php?
и что они означают?
Спасибо
Решение
Они просто необычные условия для Getter и Benters.
class MyClass
{
private $prop;
// Accessor (or Getter)
public function getProp()
{
return $this->prop;
}
// Mutator (or Setter)
public function setProp($value)
{
$this->prop = $value;
}
}
Другие советы
Разве мы не должны использовать __get и __set в php5 и позже сейчас?
Если я вас правильно понимаю, эти 2 особенные, чтобы я угадал любой язык ориентированного на объект, язык программирования. Дело в том, что Accessor - это метод или функция, которая обеспечивает доступ к частным полям в вашем методе класса и мутатора позволяет изменять частные поля. Я могу пойти на написание об этом, но я предлагаю вам просто Google их, и вы получите много информации об этом. Все о капсулировании <- предложить вам искать этот термин.
Это не просто разные термины для геттеров и сеттеров, по крайней мере, не в Laravel.
Процитируем документацию:"Средства доступа и мутаторы позволяют вам форматировать атрибуты Eloquent при извлечении их из модели или установке их значения".
https://laravel.com/docs/master/eloquent-mutators
Итак, вы могли бы сказать, что геттеры и сеттеры - это подмножество средств доступа и мутаторов, которые изменяют данные с нулевым коэффициентом.
Другими словами, если бы я хотел получить необработанное поле "стоимость" из таблицы, я бы использовал геттер.Если бы я хотел, чтобы это поле было выражено и отформатировано в фунтах и пенсах, то я мог бы использовать средство доступа.
Есть другие способы, которыми я мог бы это сделать, но это один из вариантов.