crocos/navy — pull request #1 by fivestar (2014-11-10 12:11:31+00:00)
Title: Update to use "config/navy.yml" and abstract Notifier and Logger

## 変更点

* `config/parameters.yml` から `config/navy.yml` に
* Symfony の parameters 直ではなく、構造化された configurable な設定ファイルに
* `Notifier`
* `NotifierInterface` を追加し、通知の基本機構をコアで提供できるようにする
* 拡張機構を自前で用意する必要があるため若干複雑
* `Logger`
* Monolog の設定をハンドリングする `LoggerProvider` を実装
* `Kernel`
* `VERSION` 定数を追加 (暫定的に `0.2.0`)
* `NavyPlugin` を用意し、コアの設定をプラグイン化
* `getHooks()` の実装を別クラスに移動

## カーネルの起動 / 設定ファイルのローディング

1. `ContainerBuilder` を初期化
1. `config/navy.yml` を読み込み
* 単に YAML を配列にパース
1. 設定からプラグイン情報のみを読み取ってプラグインオブジェクトの作成
* `NavyPlugin` は常に読み込まれる
1. 各プラグインごとに設定を読み込んでパラメータを初期化
* `PluginInterface::loadConfig()`
* `navy.yml` のトップレベルのキーがプラグイン名に対応する
* `navy:` は `NavyPlugin`、`slack:` は `SlackPlugin` に対応
* それ以下の階層は自由
1. 各プラグインごとにサービス設定ファイル(`Resources/services.yml`)を読み込み
* `PluginInterface::loadContainer()`
1. コンテナをコンパイル