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