Best practics ООП?

Меня интересуют небольшие тонкости в написании классов и их свойств. Они не особо вляют на работу, возможно даже их стоит просто отнести к codeStyle.
Упоминаний об этом в интернете я не нашел, просто возник спор с другом. Возможно вы поможете нам его разрешить.

Суть вопроса - у класса есть свойство. По умолчанию оно, например равно 1, и не является константой.
Лучше его объявить во время объявления переменной, или задать значение, например в контроллере, или просто при получении геттером проверять его на существование.
Если в кратце, то как лучше писать?
1.
class one
{
    private $type = 1;
}

2.
class one
{
    private $type;
    public function __construct()
    {
        $this->type = 1;
    }
}

3.
class one
{
    private $type;
    public function getType()
    {
        return $this->type ?? 1;
    }
}


Хотлеось бы услышать поподробнее почему вы именно так считаете, а так же, если этот класс, является сущностью dataMapper или ActiveRecord
  • Вопрос задан
  • 633 просмотра
Пригласить эксперта
Ответы на вопрос 3
e_svirsky
@e_svirsky
Web Developer
2й вариант без сомнений единственно верный.
Ответ написан
nefone
@nefone
Junior PHP разработчик
Если это свойство влияет на объект, из-за каких то внешних факторов, то конечно его нужно инициализировать в конструкторе.
class house 
{
    private $type;
    public function __construct($housetype)
    {
        $this->type = $housetype;
    }
}


Конечно в двух словах такое будет сложно объяснить, можно ознакомиться с книгами:
Шаблоны корпоративных приложений
PHP. Объекты, шаблоны и методики программирования
Ответ написан
Комментировать
@BorisKorobkov Куратор тега PHP
Web developer
Первый вариант чище.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽