Задать вопрос

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
  • Вопрос задан
  • 640 просмотров
Подписаться 4 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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
Первый вариант чище.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽