プラットフォーム概要

出典: SugarForum.jp

目次

モジュールフレームワーク

SugarCRMは「モジュール」を基本単位として構成されています。システムで標準で用意されているコンタクトリスト機能やリード機能などもすべてモジュールによって実現されています。各モジュールは、Model-View-Controller(以下MVC)アーキテクチャ、すなわちデータベースへのアクセスを管理する「Model(SugarBean)」と、レコードを作成・編集・削除するため処理を記述する「Controller」とユーザインターフェース「View」を持ちます。

通常のMVCアーキテクチャを用いたWebアプリケーションでは、アプリケーション単位でMVCが定義されますが、Sugarの場合、モジュール単位でMVCを定義し、それら複数のMVCが最終的にダッシュボード上でまとめて表示されます。

モジュール以外の部分(ダッシュボードやACLなど)はSugarCRMのフレームワークとして提供されています。

トップレベルのフォルダ構成

Sugarのトップレベルのフォルダ構成とそこに格納されたデータについて説明します。

  • cache : Sugarで扱う様々なキャッシュ(言語ファイルvardefsファイル、Smartyテンプレートなど)
  • custom : Sugarを拡張する際はこのフォルダを使います。既存モジュールを拡張する場合でも、モジュールフォルダに直接手を付けず、customフォルダにコードを置くことで、アップグレードセーフなカスタマイズを施すことが出来ます。
  • data : システムの要となるファイルが収められています。特に、SugarBean.php は全てのSugarクラスのスーパークラスとして重要です。
  • include : Sugarの様々な機能を実現するコードが、このフォルダに整理されて収められています。
  • metadata : 多対多関係のメタデータが全て収められています。Sugarでは、多対多関係はテーブルとして表現されます。メタデータはそのテーブルの定義です。
  • modules : 全てのモジュールがこのフォルダの中にあります。それぞれのモジュールフォルダには、vardefsファイルや、Sugarクラス、レイアウトを定義するメタデータ、言語ファイルなど、モジュールに関するほとんどのファイルが収められています。


アプリケーションの呼出(URL規則)

Sugarの各機能は、必ずルートフォルダのindex.phpを経由して呼び出されます。その際に使う主なパラメータは3つです。

  • module : 呼び出すモジュールの名称
  • action : モジュールで定義されたアクション
  • record : アクセスするレコードのID

URLの例は次のようになります。

[サーバのアドレス]index.php?module=Contacts&action=DetailView&record=d545d1dd

これは、「ContactsモジュールのDetailView(詳細ビュー)アクションを、レコードID=d545d1ddで呼び出せ」と読めます。よりかみ砕くと、「レコードIDがd545d1ddのコンタクトを詳細表示せよ」となります。

重要なファイルとコードの断片

  • SugarBean.php : すべてのSugarクラスのスーパークラス。MVCでいうところモデルにあたります。
  • $app_strings : Sugar全体で使用される、文字列。各言語ごとに用意されます。
  • $app_list_strings : データベースのカラムにenumを使う場合など、HTMLのフォームに<select>タグを使います。そこで選択肢として使用される文字列は、$app_list_stringsに連想配列として指定します。各言語ごとに用意されます。
  • $mod_strings : カレントモジュールのみで有効な文字列です。各言語ごとに用意されます。


脚注


最終更新 09:25, 2010年1月12日 (火)。   このページは 7,749 回アクセスされました。