本文へスキップ
ドキュメント

開発者ガイド

アーキテクチャ概要

Zittme 上でモジュール・スキン・レイアウト・テーマを作る前に知っておくべき、最小限の構造をまとめます。

Rhymix との関係

Zittme は、Rhymix 2.1.35 から分岐した GPL v2 のエンジンです。サードパーティ制作の観点で重要なのは互換性です。

  • コアの名前空間は Zittme\ です。Rhymix\ は互換エイリアスとして残っているため、既存の Rhymix 用モジュールが Rhymix\Framework\... を呼び出してもそのまま動作します。
  • 新しく作るコードは Zittme\ を基準に書いてください。
  • Rhymix 用に作られたモジュール・スキン・レイアウトは、ほとんどが修正なしで動作します。Zittme 独自の機能(テーマパッケージ、繰り返しフィールド、レスポンシブ表示)は、Rhymix にインストールしても無視されるだけで、エラーにならないよう設計されています。

フォルダー構成

パス内容
common/framework/コアフレームワーククラス(Zittme\Framework\...)
classes/レガシーのコアクラス(Context、ModuleHandler など)
modules/モジュール。機能の基本単位
layouts/, m.layouts/レイアウト(PC / モバイル専用)
themes/テーマパッケージ
addons/アドオン(リクエスト処理の途中に割り込む軽量な拡張)
widgets/ウィジェット
files/アップロードファイル・キャッシュ・設定。サイトのデータなので配布物には含めない

リクエストの流れ

すべてのリクエストは index.php に入り、2つの値で実行するコードを決めます。

  • mid:モジュールインスタンスの名前。サイトマップで作った「掲示板1つ、ページ1つ」がそれぞれ mid です。アドレスの最初の部分になります(/board、/manual)。
  • act:実行するアクション名(dispBoardContent、procBoardInsertDocument)。モジュールの conf/module.xml に宣言されたものだけが実行されます。

アクション名には規則があります。

接頭辞意味呼び出し方式
disp画面を描画するGET
procデータを処理するPOST(CSRF トークンを自動チェック)
getApi などデータを返す用途に応じて

アドレスを mid/document-number、mid/write のようにすっきりさせるには、アクションにルートを宣言します。モジュール制作の文書で扱います。

データベース

SQL を直接書きません。クエリは XML ファイル(queries/*.xml)で宣言し、executeQuery('module.query_name', $args) で実行します。テーブルも XML(schemas/*.xml)で宣言すれば、モジュールのインストール時にコアが作成してくれます。詳しくはクエリ XMLをご覧ください。

テンプレート

画面はテンプレートファイル(HTML)で描画します。構文は2つの世代が共存しています。

  • v2(推奨):ファイルの1行目に @version(2)。@if / @foreach / {{ }} スタイル
  • v1(レガシー):cond=""、loop="" 属性スタイル。既存資料との互換用

新しい資料は v2 で作ってください。テンプレート構文 v2を参照してください。

拡張方法のまとめ

作りたいもの手段文書
新しい機能(DB、管理画面を含む)モジュールモジュール制作
既存モジュールの見た目モジュールスキンスキン・レイアウト制作
サイト全体の枠組みレイアウトスキン・レイアウト制作
レイアウト+スキンのセットテーマパッケージテーマパッケージを作る
すべてのリクエストに割り込む軽量な動作アドオン(予定)
レイアウトのどこにでも差し込むコンテンツの断片ウィジェット(予定)