読者です 読者をやめる 読者になる 読者になる

新しい描画プロセス

XC

XC v1.0 では描画プロセスも刷新して、テンプレートから起動に必要なモジュールを読み取る方式へのサポートが入る。「はてなダイアリー」みたいにモジュールのタグを書いときゃプログラムが起動されるような仕組みね。

ちぃとおさらいしとくと、X2やXCLでは、ブロックの配置情報はみなデータベースに格納しとった。ほんでコアでその情報を読み出して、実行して、レンダリングした後に、5つのキュー*1へプッシュして、テーマのスクリプトでそれを展開してベイクしとったんよね。

新しい描画プロセスが想定する手順では、BASEは真っ先にテーマ(ページ)の描画から入ることができる。テーマの描画をやろうとすると、まだ起動されとらんモジュールが検出できるけー、それをメインシーケンスへ通達する。で、描画のほうは準備が整うまで中断しとく *2

このやり方なら、テンプレートにモジュールタグを書いた場合も、管理画面からモジュールを配置した場合も(それをバッファにベイクしときゃー)、描画プロセスからみりゃあ同じに見えるけー、正しゅう処理される。

レンダーシステムも今までみたいにテーマのフォーマットを熟知しとく必要がないけー、コア 0.9 の頃たぁ流動性がだいぶ上がるじゃろう。

それに、描画シーケンスは描画が終わるまで何回でもリトライするけー、配置したモジュールのテンプレートに別のモジュールのタグが書いてあってもちゃんと処理できる。じゃけー「どこでもコメント」系の管理画面から配置しにくいやつも、モジュールのテンプレートに直書きしとくだけでようなる。

*1:左カラム、右カラム、中央カラム、中央左カラム、中央右カラム

*2:本当を言えば、メインシーケンスにリクエストのメッセージを送ったあと、自身はキューにあるほかのコマンドオブジェクトを処理すりゃあええ。じゃけどまだPHP版は並列実行できんけえ、事実上、処理を中断せんといけんじゃろう