Аксессуар и мутатор?

при использовании доктрины я натыкаюсь на эти 2 слова: accessor и mutator.

используются ли они только в доктрине или они специфичны для php?

и что они означают?

спасибо

Ответ 1

Они просто причудливые термины для геттеров и сеттеров.

class MyClass
{
    private $prop;

    // Accessor (or Getter)
    public function getProp()
    {
        return $this->prop;
    }


    // Mutator (or Setter)
    public function setProp($value)
    {
        $this->prop = $value;
    }

}

Ответ 2

Если я правильно вас понимаю, эти 2 специфичны для того, чтобы я предполагал какой-либо объектно-ориентированный язык программирования. Дело в том, что accessor - это метод или функция, которая обеспечивает доступ к закрытым полям вашего класса, а метод mutator позволяет изменять частные поля. Я могу продолжить писать об этом, но я предлагаю вам просто Google, и вы получите много информации об этом. Его все о инкапсуляции < - предлагает вам найти этот термин также.

Ответ 4

Это не просто разные термины для геттеров и сеттеров, по крайней мере, не в Laravel.

Процитировать документацию: "Аксессоры и мутаторы позволяют вам форматировать атрибуты Eloquent при извлечении их из модели или настройке их значения".

https://laravel.com/docs/master/eloquent-mutators

Итак, вы можете сказать, что геттеры и сеттеры являются подмножеством аксессуаров и мутаторов, которые изменяют данные в нулевом значении.

Положите это иначе, если бы я хотел получить "стоимость" необработанного поля из таблицы, я бы использовал getter. Если бы я хотел, чтобы это поле было выражено и отформатировано в фунтах и ​​пенсии, я мог бы использовать аксессор.

Есть и другие способы, которые я мог бы сделать, но один вариант.