аксессор и мутатор? - PullRequest
12 голосов
/ 04 мая 2010

при использовании учения я натыкаюсь на эти 2 слова: аксессор и мутатор.

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

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

спасибо

Ответы [ 4 ]

24 голосов
/ 04 мая 2010

Это просто модные термины для добытчиков и сеттеров.

class MyClass
{
    private $prop;

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


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

}
3 голосов
/ 14 апреля 2011

Разве мы не должны использовать __ get и __set в php5 и позже сейчас?

2 голосов
/ 04 мая 2010

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

0 голосов
/ 27 января 2016

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

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

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

Итак, вы могли бы сказать, что геттеры и сеттеры являются подмножеством методов доступа и мутаторов, которые изменяют данные с нулевым коэффициентом.Кстати, если бы я хотел получить необработанное поле «стоимость» из таблицы, я бы использовал геттер.Если бы я хотел, чтобы это поле было выражено и отформатировано в фунтах и ​​пенсах, я мог бы использовать метод доступа.

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

...