Isolde () ドキュメント 日本語版

Isoldeの簡単な紹介

Isoldeは、CodeIgniterの機能拡張パッケージです。
「ビューの部品化・カプセル化」、「認証機能」、「CRUD」を提供します。
third_partyパッケージにサンプルを加えた形で提供されます。

「認証機能」と「CRUD」は選択式のモジュールになっているので、標準機能の「ビューの部品化・カプセル化」だけを用いて、認証やデータベースを必要としないサイトの構築にも適しています。

URIセグメント

URIの各セグメントは以下の意味を持ちます。

  1. アクター
  2. ターゲット
  3. アクション
  4. ID
では、次のURIはどのような意味を持つでしょうか?
example.com/admin/category/edit/2

「adminというアクターが、categoryというターゲットの、2で識別される部分に、editという操作を行う」となります。

アクター

Isoldeでは複数のアクターの存在を想定しています(例: サイト閲覧者とサイト管理者)。
controllers、models、viewsにはそれぞれ、アクター名のディレクトリが用意されることになります。

デフォルトのアクター(例: サイト閲覧者)の名称はdefaultとなります。
URIの第1セグメントに、常にdefaultという文字列が入らないですむように、第1セグメントが定義したアクター名のいずれでもない場合、第1セグメントにdefaultが入っているとみなされます。

example.com/item/view/5
この例では「itemというアクターが、viewというターゲットに…」とはなりません。
「defaultというアクがーが、itemというターゲットの、5で識別される部分に、viewという操作を行う」となります。

注意が必要なケースがあります。
「defaultアクターが、メンバーというターゲットに、一覧という操作を行いたい」ときURIはどのようになるでしょう。

example.com/member/index
この例では, memberというアクターが定義されていなければよいのですが、仮に定義されていた場合は「memberというアクターが…」となってしまします。
example.com/actor_member/index
この例のように、アクター自身を表すターゲットにはactor_という接頭辞をつけ、第1セグメントがアクターなのかどうか正しく解釈されるようにします。

ターゲット

ターゲットは基本的にデータベースのデーブルに相当しますが、将来的にデータベース以外の対象(例: ファイル、セッションデータ等)を扱う拡張を行えるよう、テーブルという名称は用いていません。
controllersに用意されたアクター名のディレクトリ内に、ターゲット名のコントローラが用意されることになります。
実はCRUDモジュールを指定した場合、config/routes.phpをうまく利用して、コントローラ自体を省略することができます!
(決まりきった操作のために、マスタごとに似たようなコントローラを大量に用意して、うんざりした経験はありませんか?)
このしくみの詳しい説明は後のページに回すことにします。

アクション

アクションはコントローラ内のメソッドに相当します。
省略された場合はindexが指定されたとみなされます。

ID

アクションによってはIDは必要がない場合があります。
基本的にテーブルの主キーに相当します。