<!--
   $FML$
-->


<sect1 id="fml.command.module.hierarchy">
	<title>
	コマンドが使うモジュール
	</title>

<para>
5.0 では、
コマンドメール、makefml そして CGI が使うモジュール
は共有されています。
ただし、その権限の差異によって、
ユーザ用のモジュールと管理者用のモジュールの2つに分かれています。
以下、これらのモジュール群の構成について解説します。
</para>

<para>
FML::Command:: クラスは以下のような構成になっています。
<screen>
FML::Command.pm		FML::Command クラス以下への入口
FML::Command::ACL	ACL
FML::Command::Utils	よもやまの定義
FML::Command::User	ユーザ用コマンド群
FML::Command::Admin	管理者用コマンド群
</screen>
例えば、(メールでの)ユーザ用のコマンドの場合
FML::Command.pm を経由して
FML::Command::User::コマンド.pm
モジュールを使うことになります。
</para>

<sect2>
	<title> (メールでの)一般ユーザ用コマンド </title>
<para>
FML::Process::Command.pm から
FML::Command.pm 経由で
FML::Command::User::コマンド.pm
を用います。
</para>

<para>
最終的に
FML::Command::Admin::コマンド.pm
を使うモジュールもあります。
例えば登録と削除の実作業は
FML::Command::Admin::コマンド.pm
が行なっています。この場合
FML::Command::User::コマンド.pm
のコマンドは confirm を行なうための wrapper です。
</para>
</sect2>

<sect2>
	<title> (メールでの) adminコマンド </title>

<para>
FML::Process::Command.pm から
FML::Command.pm 経由で
FML::Command::Admin::コマンド.pm
を用います。
</para>

</sect2>

<sect2>
	<title> makefml のコマンド </title>

<para>
FML::Process::Configure.pm から
FML::Command.pm 経由で
FML::Command::Admin::コマンド.pm
を用います。
</para>

</sect2>

<sect2>
	<title> CGI （予定） </title>

<para>
FML::Process::CGI.pm から
FML::Command.pm 経由で
FML::Command::Admin::コマンド.pm
を用います（予定）。
</para>

</sect2>


</sect1>
