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