Class::Componentのメモ
C::C::Component::Plaggerizeをつかったアプリで、__PACKAGE__->load_pluginsしたプラグインのinitから$context->confが使えなくてdieしたので、初期化シーケンスを調べてみた。
ほんとはこんなに単純ではないんだけどね。
newが呼ばれると、NEXTでさかのぼって、最初にClass::Component::newを実行される。 引数で渡したやつとdefaultプラグインのみがロードされる。 ロードされる中で、プラグインクラスがrequire、newされる。 newの中で、configをセットした後にプラグインのinitを実行。 プラグインオブジェクトのregisterを実行。 アトリビュートクラスのrequireと、アトリビュートクラスのregisterを実行。 hook、methodの登録などが行われる C::C::C::Plaggerize::newに戻り、引数のconfigからconfをセットアップ confを基にプラグインがロードされる。