コードのクラスへの振り分けを少し整理
2008年3月5日
現在のJeansのアーキテクチャは次のとおり。

見てのとおり、少し複雑である。制御があちらこちらに飛んでしまっているように感じる。もう少し分かりやすくしたい。
まず、index.phpからの制御がcoreとskinに向いているが、これらはそれぞれ、Nucleusのglobalfunctions.phpのインクルードとselector()の実行に相当する。Jeansでは管理画面もスキンを通じてアクセスする予定なので、skinは実際にはほとんどの場合に使われることになる(例外は、アクションの呼び出し)。次にsqlクラスだが、これはcoreクラスの初期化の際に必ず呼び出される。
そこで、skinクラスとsqlクラスの機能をcoreに統合することにする。skinクラスのメソッドはcoreクラスにそのまま取り込み、sqlクラスはそのままの形でcore.phpファイル内に記述する。skinクラス相当分のコードのパースはアクションの呼び出し(actionクラスを利用)の際に少々無駄になるが、50行ほどの簡単なコードだから、パフォーマンスへの影響は少ない。
この変更を施すと、アーキテクチャは次のようになる。

これなら、分かりやすい。すべての制御がcoreから始まり、それをjitとactionの二つのクラスがサポートすることが一目瞭然。

見てのとおり、少し複雑である。制御があちらこちらに飛んでしまっているように感じる。もう少し分かりやすくしたい。
まず、index.phpからの制御がcoreとskinに向いているが、これらはそれぞれ、Nucleusのglobalfunctions.phpのインクルードとselector()の実行に相当する。Jeansでは管理画面もスキンを通じてアクセスする予定なので、skinは実際にはほとんどの場合に使われることになる(例外は、アクションの呼び出し)。次にsqlクラスだが、これはcoreクラスの初期化の際に必ず呼び出される。
そこで、skinクラスとsqlクラスの機能をcoreに統合することにする。skinクラスのメソッドはcoreクラスにそのまま取り込み、sqlクラスはそのままの形でcore.phpファイル内に記述する。skinクラス相当分のコードのパースはアクションの呼び出し(actionクラスを利用)の際に少々無駄になるが、50行ほどの簡単なコードだから、パフォーマンスへの影響は少ない。
この変更を施すと、アーキテクチャは次のようになる。

これなら、分かりやすい。すべての制御がcoreから始まり、それをjitとactionの二つのクラスがサポートすることが一目瞭然。