Какие есть варианты упрощения ? чтобы при создании объекта не передавать кучу параметров в конструкторе.
На вскидку, вариантов несколько:
1. Передавать не 20 десятков свойств, а именованный массив, например так:
__construct($array) { ... }
new MyClass([
'property1' => 'value1',
'property2' => 'value2',
'property2' => 'value3',
]);
А в самом классе соотв. заполнять те поля которые не переданы - значениями по умолчанию (если это допустимо), так будет несколько более читабельно.
2. Либо же, если проблема конкретно в конструкторе - можно передавать эти значения через другой метод, не конструктор.
3. Или, можно где-то сохранять эти значения (в конфиге, в БД, в сессии, где-то-ещё) и при создании экземпляра нужного класса - доставать их оттуда (такая практика встречается довольно часто).