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
  • Вопрос задан
  • 634 просмотра
Пригласить эксперта
Ответы на вопрос 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
Первый вариант чище.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы