summaryrefslogtreecommitdiff
path: root/fml/doc/ja/tutorial/internals
diff options
context:
space:
mode:
Diffstat (limited to 'fml/doc/ja/tutorial/internals')
-rw-r--r--fml/doc/ja/tutorial/internals/bootloader.sgml13
-rw-r--r--fml/doc/ja/tutorial/internals/cgi.sgml32
-rw-r--r--fml/doc/ja/tutorial/internals/config.cf.sgml22
-rw-r--r--fml/doc/ja/tutorial/internals/dbms.sgml10
-rw-r--r--fml/doc/ja/tutorial/internals/design.sgml15
-rw-r--r--fml/doc/ja/tutorial/internals/directory.sgml2
-rw-r--r--fml/doc/ja/tutorial/internals/hook.sgml6
-rw-r--r--fml/doc/ja/tutorial/internals/main.cf.sgml6
-rw-r--r--fml/doc/ja/tutorial/internals/restriction.sgml32
-rw-r--r--fml/doc/ja/tutorial/internals/style.sgml81
10 files changed, 154 insertions, 65 deletions
diff --git a/fml/doc/ja/tutorial/internals/bootloader.sgml b/fml/doc/ja/tutorial/internals/bootloader.sgml
index 32434bfa..56fe2d9d 100644
--- a/fml/doc/ja/tutorial/internals/bootloader.sgml
+++ b/fml/doc/ja/tutorial/internals/bootloader.sgml
@@ -1,5 +1,5 @@
<!--
- $FML: bootloader.sgml,v 1.6 2002/04/01 23:41:03 fukachan Exp $
+ $FML: bootloader.sgml,v 1.7 2002/07/02 10:39:35 fukachan Exp $
-->
<chapter id="bootloader">
@@ -10,10 +10,10 @@
<para>
&fmldevel; にはインストールされている fml のバージョン依存性を考慮するた
-めに、実行時には本章で述べるようなブートストラップの過程があります。
+めに、本章で述べるようなブートストラップの過程があります。
<screen>
-boot していくイメージ
+fml が boot していくイメージ
libexec/loader ->
FML::Process::Switch ->
@@ -32,7 +32,7 @@ loader から次々と呼ばれていく様子は、例えば配送処理の場合、次のよう
</para>
<para>
-libexec/loader は /usr/local/etc/fml/main.cf を読みこみます。
+libexec/loader は /usr/local/etc/fml/main.cf を読みこみ、
fml_version 変数から使うべきライブラリのバージョンを決めます。
例えば fml_vesrion が current-20010501 となっていたら
/usr/local/lib/fml/current-20010501/ 以下にあるライブラリを使うといった
@@ -86,7 +86,7 @@ FML::Process::Mead >-| |
<listitem>
<para>
- libexec/loader (wrapper)
+ libexec/loader (wrapper)
Bootstrap() を実行する。
fml.pl などはこの loader へのシンボリックリンクです。
/usr/local/libexec/fml/ を参照して下さい。
@@ -146,10 +146,11 @@ FML::Process::Mead >-| |
FML::Process::Flow の中に、
どのように fml プロセスを実行するかが
- 定義されています。
+ 定義されています。大雑把には
<screen>
$process = new FML::Process::なにか;
$process->prepare($args);
+$process->verify_request($args);
$process->run($args);
$process->finish($args);
</screen>
diff --git a/fml/doc/ja/tutorial/internals/cgi.sgml b/fml/doc/ja/tutorial/internals/cgi.sgml
index 681964d6..cb2cdb12 100644
--- a/fml/doc/ja/tutorial/internals/cgi.sgml
+++ b/fml/doc/ja/tutorial/internals/cgi.sgml
@@ -1,5 +1,5 @@
<!--
- $FML: cgi.sgml,v 1.5 2002/04/01 23:41:03 fukachan Exp $
+ $FML: cgi.sgml,v 1.6 2002/07/02 10:39:35 fukachan Exp $
-->
<chapter id="internal.cgi">
@@ -14,7 +14,7 @@
</title>
<para>
-FML::CGI のクラスは以下の3つのメソッドを実装して下さい。
+FML::CGI のクラスは以下のメソッド群を実装して下さい。
<screen>
html_start()
run_cgi_main()
@@ -30,7 +30,7 @@ html_start() は、
ようするに HTML の先頭部分、たとえば DOCTYPE から BODY あたりを、
html_end() は
/BODY と /HTML を表示する部分をカスタマイズするために用います。
-run_cgi() メソッドでは BODY の部分を表示してください。
+run_◎◎ メソッド群では BODY の部分を定義しています。
</para>
<para>
@@ -60,14 +60,16 @@ finish()
<sect1 id="internal.cgi.frames">
<title>
- 画面の作りとメソッド
+ CGI の画面の作りとメソッド
</title>
<para>
-典型的な画面は次のように分割されると考えて良いでしょう。
+fml CGI スクリプトでは典型的な画面が次のように分割されると考えています。
<screen>
ヘッダ
-バー1 メニュー バー2
+◎ メニュー ◎
+バー1 メイン バー2
+◎ メニュー ◎
フッタ
</screen>
なお、バー1と2の部分は navigation などと呼ばれます。
@@ -78,17 +80,12 @@ finish()
ヘッダ部分( HTTP ヘッダではなく、HTML の DOCTYPE から BODY あたり)
やフッタの部分は
html_start() および html_end() で HTML コードを生成するでしょう。
-BODY の中身は
-<screen>
-バー1 メニュー バー2
-</screen>
-の部分で、run_cgi() によって生成します。
+BODY の中身は真中の3x3のテーブル状の部分で、run_cgi() から呼ばれる
+メソッドが生成しています。
</para>
-<warning>
<para>
-TODO:
run_cgi() の中身をもっと細かくすることと、
画面上のどの部分をどのメソッドが記述するのかを指定できる
アクセスメソッドが必要です。
@@ -98,9 +95,8 @@ nw north ne
west center east
sw south se
</screen>
-くらいの精度がないといけないかも知れません。
+という3x3の精度で表現されています。
</para>
-</warning>
</sect1>
@@ -125,11 +121,11 @@ FML::CGI:: クラスが提供するメニュー生成クラスを
<screen>
FML::CGI::Admin::Main →
FML::Command::Admin::subscribe →
-FML::CGI::Admin::Menu →
+FML::CGI::Admin::User →
メニューの表示
</screen>
-などとなるでしょう。
-このように Mach のトランポリン機構のように、いったりきたりします。
+などとなっていて、Mach のトランポリン機構のように、いったりきたりしま
+す。
</para>
</sect1>
diff --git a/fml/doc/ja/tutorial/internals/config.cf.sgml b/fml/doc/ja/tutorial/internals/config.cf.sgml
index f855a0df..f1fdfa0b 100644
--- a/fml/doc/ja/tutorial/internals/config.cf.sgml
+++ b/fml/doc/ja/tutorial/internals/config.cf.sgml
@@ -1,5 +1,5 @@
<!--
- $FML: config.cf.sgml,v 1.6 2002/04/01 23:41:03 fukachan Exp $
+ $FML: config.cf.sgml,v 1.7 2002/07/02 10:39:35 fukachan Exp $
-->
<chapter>
@@ -22,7 +22,20 @@
</para>
<para>
-この perl script 方式にはいくつか問題があります。
+&fmldevel; では config.cf 一つです。
+フォーマットは postfix や .ini 風の
+<screen>
+変数 = 値
+</screen>
+</para>
+
+<sect2>
+ <title>
+ &fml4; の諸問題
+ </title>
+
+<para>
+&fml4; の perl script 方式にはいくつか問題があります。
例えば perl script なので、perl が許す限りの自由な書き方ができます。
これは人間にとっては嬉しいのですが、
機械処理の観点からは問題です。というのは
@@ -41,6 +54,7 @@ cf というファイルと config.ph という
これは本質的に postfix 風のフォーマットです。
</para>
+</sect2>
</sect1>
@@ -157,7 +171,7 @@ x = a b c d e
『サイト固有の定義』、
『ドメイン固有の定義』
などを別のファイルに分離することができます。
-デフォルトでは分離されています。
+デフォルトではいくつかの .cf ファイルに分離されています。
</para>
<para>
@@ -205,7 +219,7 @@ $config->{ another_key }
これは $dir/$file のような形式のままです。
get() はこのハッシュではなく %_fml_config_result の値を返しています。
-これは $dir などが展開された後の値で、
+このハッシュ中の値は $dir などが展開された後の値で、
/var/spool/ml/elena/file などとなっています。
この変数の値の展開は get() なりで呼ばれた時に始めて行なわれます。
</para>
diff --git a/fml/doc/ja/tutorial/internals/dbms.sgml b/fml/doc/ja/tutorial/internals/dbms.sgml
index 10955599..49b46ca5 100644
--- a/fml/doc/ja/tutorial/internals/dbms.sgml
+++ b/fml/doc/ja/tutorial/internals/dbms.sgml
@@ -1,5 +1,5 @@
<!--
- $FML: dbms.sgml,v 1.1 2001/08/19 12:53:08 fukachan Exp $
+ $FML: dbms.sgml,v 1.2 2001/10/13 08:47:56 fukachan Exp $
-->
<chapter id="dbms">
@@ -7,6 +7,13 @@
データベース管理システム
</title>
+<warning>
+<para>
+まだ、実装途中です。
+</para>
+</warning>
+
+
<para>
DBMS との通信は
<link linkend="module.io.adapter">
@@ -21,4 +28,5 @@ IO::Adapter
IO::Adapter の前段階のプログラムが頑張る必要があります。
</para>
+
</chapter>
diff --git a/fml/doc/ja/tutorial/internals/design.sgml b/fml/doc/ja/tutorial/internals/design.sgml
index 9c51afb2..7b1bf376 100644
--- a/fml/doc/ja/tutorial/internals/design.sgml
+++ b/fml/doc/ja/tutorial/internals/design.sgml
@@ -1,10 +1,10 @@
<!--
- $FML: design.sgml,v 1.6 2002/04/01 23:41:03 fukachan Exp $
+ $FML: design.sgml,v 1.7 2002/07/02 10:39:35 fukachan Exp $
-->
<chapter id="design">
<title>
- &fmldevel; (仮名) のデザインコンセプト
+ 原案: &fmldevel; (仮名) のデザインコンセプト
</title>
@@ -14,11 +14,12 @@
-->
<sect1>
-
-<title> fml-devel プロジェクトの構想 </title>
+ <title>
+ fml-devel プロジェクトの構想
+ </title>
<para>
-<ulink url="http://www.fml.org/devel/">
+<ulink url="http://www.fml.org/software/fml-devel/">
fml-devel
</ulink>
とも呼ばれている &fmldevel; プロジェクトは、
@@ -27,8 +28,8 @@ fml-devel
</PARA>
<para>
-<ulink url="http://www.fml.org/devel/">
-http://www.fml.org/devel/
+<ulink url="http://www.fml.org/software/fml-devel/">
+http://www.fml.org/software/fml-devel/
</ulink>
は将来の fml-current についてのデザインや実装例を紹介しています。
</PARA>
diff --git a/fml/doc/ja/tutorial/internals/directory.sgml b/fml/doc/ja/tutorial/internals/directory.sgml
index 0b2934fe..299514d9 100644
--- a/fml/doc/ja/tutorial/internals/directory.sgml
+++ b/fml/doc/ja/tutorial/internals/directory.sgml
@@ -4,7 +4,7 @@
</title>
-<sect1>
+<sect1 id="directory.subdir.hier.level">
<title>
Q: サブディレクトリ構造は何段階まで必要か?
</title>
diff --git a/fml/doc/ja/tutorial/internals/hook.sgml b/fml/doc/ja/tutorial/internals/hook.sgml
index 99ccae5d..629a256b 100644
--- a/fml/doc/ja/tutorial/internals/hook.sgml
+++ b/fml/doc/ja/tutorial/internals/hook.sgml
@@ -1,5 +1,5 @@
<!--
- $FML$
+ $FML: hook.sgml,v 1.1 2002/02/16 13:23:25 fukachan Exp $
-->
<chapter id="hook">
@@ -8,7 +8,7 @@
</title>
-<sect1>
+<sect1 id="hook.problems">
<title>
hook における諸問題
</title>
@@ -34,7 +34,7 @@ HOOK を評価する lexical scope では無視するようにするべきでしょう。
</sect1>
-<sect1>
+<sect1 id="hook.naming.convention">
<title>
hook の命名規則
</title>
diff --git a/fml/doc/ja/tutorial/internals/main.cf.sgml b/fml/doc/ja/tutorial/internals/main.cf.sgml
index 65915245..71e6d2e2 100644
--- a/fml/doc/ja/tutorial/internals/main.cf.sgml
+++ b/fml/doc/ja/tutorial/internals/main.cf.sgml
@@ -1,5 +1,5 @@
<!--
- $FML: main.cf.sgml,v 1.4 2002/07/02 10:39:35 fukachan Exp $
+ $FML: main.cf.sgml,v 1.5 2002/07/04 10:59:00 fukachan Exp $
-->
<sect2 id="main.cf">
@@ -18,7 +18,7 @@
main.cf のフォーマットは他の .cf と同様
<footnote>
<para>
-実際のところファイル拡張子とファイルフォーマットには相関があります。
+ファイル拡張子とファイルフォーマットには相関があります。
</para>
</footnote>
@@ -29,7 +29,7 @@ main.cf のフォーマットは他の .cf と同様
<screen>
#
-# $FML: main.cf.sgml,v 1.4 2002/07/02 10:39:35 fukachan Exp $
+# $FML: main.cf.sgml,v 1.5 2002/07/04 10:59:00 fukachan Exp $
#
# fml version
diff --git a/fml/doc/ja/tutorial/internals/restriction.sgml b/fml/doc/ja/tutorial/internals/restriction.sgml
index 32abdb00..6e4aa133 100644
--- a/fml/doc/ja/tutorial/internals/restriction.sgml
+++ b/fml/doc/ja/tutorial/internals/restriction.sgml
@@ -1,5 +1,5 @@
<!--
- $FML: restriction.sgml,v 1.1 2001/11/25 12:03:24 fukachan Exp $
+ $FML: restriction.sgml,v 1.2 2002/02/17 05:40:53 fukachan Exp $
-->
<chapter id="restriction">
@@ -7,6 +7,10 @@
入力データへの制限
</title>
+<para>
+入力データは FML::Restriction::CGI クラスが提供する正規表現で
+検査します。
+</para>
<sect1 id="restriction.overview">
<title>
@@ -19,8 +23,13 @@
</title>
<para>
-チェックなしがデフォルト。
-もしフィルタをしたい場合は FML::Filter クラスが検査を担当する。
+FML::Restriction::CGI クラスによる入力データチェックはありませんが、
+FML::Filter クラスによるフィルタチェックがデフォルトで適用されます。
+フィルタをはずすには、config.cf で
+<screen>
+use_article_body_filter = no
+</screen>
+を設定して下さい。
</para>
</sect2>
@@ -32,10 +41,10 @@
</title>
<para>
-コマンドメールは FML::Process::Command で一行ずつ
-FML::Restriction::Command で定義されているルールで
-検査される。合格すれば、
-FML::Command::User::コマンド の実行に進むことができる。
+コマンドメールは FML::Process::Command の中で一行ずつ
+FML::Restriction::Command で定義されている正規表現にしたがって
+検査されます。検査に合格すれば、
+FML::Command::{User,Admin}::コマンド の実行に進むことができます。
</para>
</sect2>
@@ -52,9 +61,8 @@ safe_param_ほえほえ() という関数経由でのみ CGI から
</para>
<para>
-safe_param_XXX() は FML::Restriction::CGI (
-FML::Restriction::Base を継承している)経由でパターンの検査をす
-る。
+safe_param_XXX() は FML::Restriction::CGI ( FML::Restriction::Base を
+継承している)経由でパターンの検査をしています。
</para>
</sect2>
@@ -71,7 +79,6 @@ FML::Restriction::Base を継承している)経由でパターンの検査をす
</sect2>
-
</sect1>
@@ -93,8 +100,7 @@ FML::Restriction::CGI クラスのモジュールを用いて
</para>
<para>
-FML::Restriction 以下では
-Base を継承したりしますが、
+FML::Restriction 以下では Base を継承したりしますが、
他のモジュールでは、FML::Restriction クラスを object composition
として使って下さい。
例えば、
diff --git a/fml/doc/ja/tutorial/internals/style.sgml b/fml/doc/ja/tutorial/internals/style.sgml
index 8459dcbf..ec5e89d5 100644
--- a/fml/doc/ja/tutorial/internals/style.sgml
+++ b/fml/doc/ja/tutorial/internals/style.sgml
@@ -1,5 +1,5 @@
<!--
- $FML: style.sgml,v 1.4 2002/05/27 09:00:28 fukachan Exp $
+ $FML: style.sgml,v 1.5 2002/07/02 10:39:36 fukachan Exp $
-->
<chapter id="programingstyle">
@@ -27,11 +27,13 @@ FNF
変数の命名規則(ネーミングコンベンション)
</title>
- <sect2>
- <title> 標準パターン (例 log.cf lock.cf) </title>
+<sect2>
+ <title>
+ 標準パターン (例 log.cf lock.cf)
+ </title>
<screen>
-use_変数 = yes/no
+use_変数 = yes か no
# ディレクトリなら最後に _dir がつくことが望ましい
変数_dir = 文字列
@@ -52,10 +54,12 @@ use_変数 = yes/no
変数_lower_limit = 文字列(数字だけど文字列扱い)
</screen>
- </sect2>
+</sect2>
- <sect2>
- <title> パターン2 (例 acl.cf ) </title>
+<sect2>
+ <title>
+ パターン2 (例 acl.cf)
+ </title>
<screen>
変数_restrictions = reject_属性1
@@ -73,8 +77,10 @@ use_変数 = yes/no
</sect2>
- <sect2>
- <title> パターン3 (さらにプログラム名がつく場合) </title>
+<sect2>
+ <title>
+ パターン3 (さらにプログラム名がつく場合)
+ </title>
<screen>
プログラム_変数_属性
@@ -86,6 +92,63 @@ use_変数 = yes/no
<!-- ==================================================== -->
+<sect1 id="design.policy">
+ <title>
+ デザイン/コーディングスタイルの上でいろいろ
+ </title>
+
+<warning>
+<para>
+スタイルについては、
+<ulink url="http://www.fml.org/software/FNF/">FNF</ulink>
+も参照して下さい。
+</para>
+</warning>
+
+
+<sect2>
+ <title>
+ 2、3の注意点
+ </title>
+
+
+<para>
+サーチするキーに対して quotemeta() を
+</para>
+
+
+<para>
+オブジェクトの中身のキーを直接使わずに、
+常にアクセスメソッドを定義すること。
+例: main_cf へのアクセスは
+<screen>
+$curproc->{ ... }->{ main_cf }
+</screen>
+ではなく
+<screen>
+$curproc->main_cf();
+</screen>
+を使うこと
+</para>
+
+
+<para>
+@EXPORT @EXPORT_OK はできればやめたい…
+</para>
+
+
+<para>
+Srting::is_japanese_string()
+くらいの階層に浅くするべきではないかなぁ?
+せめて 3 段目くらいで止まってほしいような〜
+</para>
+
+</sect2>
+
+</sect1>
+
+
+<!-- ==================================================== -->
<sect1>
<title>
プログラミング・スタイル (原案のメモ(注: 単なる走り書き))