[ '@default' => [ 'processors' => [ 'constructor' ], 'handlers' => [ 'constructor' ], ], ], 'processors' => [ 'constructor' => [ 'class' => 'constructor', ], ], 'handlers' => [ 'constructor' => [ 'class' => 'constructor', 'formatter' => 'constructor', ], ], 'formatters' => [ 'constructor' => [ 'class' => 'constructor', ], ], ]; $fixture = new MonologSpi( $base ); $this->assertSame( $base, TestingAccessWrapper::newFromObject( $fixture )->config ); $fixture->mergeConfig( [ 'loggers' => [ 'merged' => [ 'processors' => [ 'merged' ], 'handlers' => [ 'merged' ], ], ], 'processors' => [ 'merged' => [ 'class' => 'merged', ], ], 'magic' => [ 'idkfa' => [ 'xyzzy' ], ], 'handlers' => [ 'merged' => [ 'class' => 'merged', 'formatter' => 'merged', ], ], 'formatters' => [ 'merged' => [ 'class' => 'merged', ], ], ] ); $this->assertSame( [ 'loggers' => [ '@default' => [ 'processors' => [ 'constructor' ], 'handlers' => [ 'constructor' ], ], 'merged' => [ 'processors' => [ 'merged' ], 'handlers' => [ 'merged' ], ], ], 'processors' => [ 'constructor' => [ 'class' => 'constructor', ], 'merged' => [ 'class' => 'merged', ], ], 'handlers' => [ 'constructor' => [ 'class' => 'constructor', 'formatter' => 'constructor', ], 'merged' => [ 'class' => 'merged', 'formatter' => 'merged', ], ], 'formatters' => [ 'constructor' => [ 'class' => 'constructor', ], 'merged' => [ 'class' => 'merged', ], ], 'magic' => [ 'idkfa' => [ 'xyzzy' ], ], ], TestingAccessWrapper::newFromObject( $fixture )->config ); } }