Это плохая практика - иметь столько аргументов для любой функции, будь то __parent::construct
или нет.
Слишком легко все испортить, особенно в PHP.Часто это указывает на то, что вам не хватает объектов (или слишком сильное сцепление между деталями).Я бы даже предпочел передать объект «конфигурации», если вы не можете найти другие отсутствующие объекты.
class ConfigFoo
{
public $Service, $AWSAccessKeyID, ..., $foo, $bar;
}
$cfg = new ConfigFoo();
$cfg->Service = 'whatever';
...
$req = new BrowseNodeLookupRequest($cfg);
Это в основном более структурированный способ передачи массива параметров.Объект конфигурации может расширять другие объекты конфигурации, чтобы следовать за вашими другими объектами.
И, конечно, класс может быть более продвинутым, чем простые общедоступные свойства.Вы можете управлять целостностью данных и т. Д.
Для ясности: я бы не стал прибегать к вышеизложенному, если а) нет других отсутствующих промежуточных объектов и б) имеется достаточное количество параметров, которые делаютиспользование простого массива столь же проблематично, как и длинный список аргументов функций.