Как лучше передавать конфиг по "цепочке обязанностей"

    new PaymentOf(
        new ConcreatePaymentSystem(
            new CardForm(
                $_POST
            )
        )
    );

Сейчас пишу небольшую библиотеку, для подключения платежных систем (на продакшене себя хорошо зарекомендовала). Но вот вопрос. в PaymentOf нужно передать конфиг бд для записи значений. в ConcreatePaymentSystem нужно передать конфиг для авторизации сайта на стороне платежной системы (так называемые секретный и публичный ключи). Как это сделать элегантно и хорошо. Вот пример конфига который организовал

    $config = new Config(
    [
        'secret' => [
            'secret_key' => '',
            'auth_key' => '',
        ],
        'db' => [
            'db_host' => '', //with db
            'db_name' => '', //with db
            'username' => '', //with db
            'password' => '', //with db
            'db_type' => 'mysql' //with db
        ],
        'urls'=>[
            'callback_url'=>'',//default
            'after_payment_url'=>'', //default
            'fail_url'=>'', //default
            'success_url'=>'', //default
        ]
    ]
);

Также преследую цель простоты, удобности и расширяемости. Также мне бы хотелось сделать так чтобы и новичек разобрался как с этим работать. заранее благодарю за ответы.


Ответы (0 шт):