Как я могу иметь дело с несколькими аргументами contructor или переменными класса?

Как узнать, что загрузить в конструкторе и что устанавливать с помощью установленных методов позже?

Например, у меня есть класс вопросов, который большую часть времени будет вызывать следующие вары:

protected $question; protected $content; protected $creator; protected $date_added; protected $id; protected $category; 

На данный момент у меня есть так, что в конструкторе задаются только основные требования $id , $question и $content , поэтому я не начинаю создавать огромный список аргументов конструктора. Это, однако, означает, что когда я создаю новый объект вопроса в другом месте, я должен установить другие свойства этого объекта сразу после того, как значение «код сеттера» будет дублироваться повсюду.

Должен ли я просто передать их всем в конструктор сразу, сделать это так, как я это делаю, или есть лучшее решение, которое мне не хватает? Благодарю.