cloverstudio/Spika-Server — pull request #15 by yuya-takeyama (2013-10-19 13:47:37+00:00)
Title: Dependency Lookup ではなく Dependency Injection を使用する

`CouchDb` クラスに `$app` を渡し、中で `$this->app['monolog']` を使うようになっていましたが、 `$app['monolog']` (というか正確には `$app['logger']` ) を渡すようにしています。
こうすることで、 `CouchDB` が何に依存しているのか明確になり、ユニットテスト等格上でもやりやすくなります。

`$app['monolog']` じゃなくて `$app['logger']` にした理由については、 `Monolog` 以外のロガーを使いたいときに、違和感なく書けるようにです。
`Silex` の `MonologServiceProvider` を読めば、問題のないことはわかると思います。

また、元はロガーが省略可能になっていましたが、省略付加にしました。
代わりに `$app['monolog.handler']` に `Monolog` の `NullHandler` を使えば、Null Object Pattern みたいな感じでそれが実現されます。