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
  • Вопрос задан
  • 554 просмотра
Пригласить эксперта
Ответы на вопрос 4
e_svirsky
@e_svirsky
Web Developer
2й вариант без сомнений единственно верный.
Ответ написан
BojackHorseman
@BojackHorseman Куратор тега PHP
...в творческом отпуске...
nefone
@nefone
PHP-разработчик
Если это свойство влияет на объект, из-за каких то внешних факторов, то конечно его нужно инициализировать в конструкторе.
class house 
{
    private $type;
    public function __construct($housetype)
    {
        $this->type = $housetype;
    }
}


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

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

Войти через центр авторизации
Похожие вопросы
IMAGINWEB Москва
от 55 000 до 85 000 руб.
Владис Владимир
от 100 000 до 150 000 руб.
Glamy Санкт-Петербург
от 120 000 до 180 000 руб.