Laravel — разные методы доступа к атрибуту модели

я узнал, что есть несколько способов получить доступ к атрибуту модели:

// In Model Class 1.
public function getUsername()
{
    return $this->username;
}

// OR 2.
public function getUsername()
{
    return $this->attributes['username'];
}

а затем вызов методов,

или просто вызовите атрибут при необходимости:

// 3.
$user->username;

В чем разница между этими 3 методами? и какой использовать? лучшая практика, производительность и ООП?


person Omid Alizadeh    schedule 26.06.2020    source источник


Ответы (1)


Первые два правильны с точки зрения ООП, потому что для тех, кто использует объект, не должно иметь значения, как объект делает, чтобы возвращать вам значение. В конце концов, этот механизм Laravel указывает на одну и ту же переменную, и реализация почти такая же.

А вот третья неверна, так как обращается к атрибуту напрямую, потому что если вам в будущем понадобится изменить формат значения, то гораздо проще будет с этим разобраться при возврате метода.

person Gabriel Sousa    schedule 26.06.2020