Base Module (2)

その後の追加修正である。
Perl/CGIBase Moduleを再検討して次の5個に絞る。ちなみに、従来は7個だった。BaseJFrame*.pmは使わない。
従来のBaseFrame(Css).pmBaseFrame(Css)_org.pmとして残しておくだけで実際には使わない。
  1. BaseFrame.pm
    パラメータ内の改行を削除(標準)。以前のBaseJFrame.pmである。普通はこれで十分である。
  2. BaseFrame2.pm
    パラメータ内の改行を残す(textareaタグがある場合)。以前のBaseJFrame2.pmである。
  3. BaseFrameCss.pm
    スタイルにeucjp.cssを使う以外はBaseFrame.pmと同じ。以前のBaseJFrameCss.pmである。複雑なスタイルが必要な場合に使うが実験では使わない。
  4. BaseCheck.pm
  5. BaseConvert.pm
BaseFrame.pmBaseJFrame.pmは、パラメータ取得部分でのkeyvalueの値の文字コードの変換(euc-jpに変換)するところの2行が違うだけで、他の部分は同じである。「大は小を兼ねる」という点からみれば、これはほとんどムダで、実際的にはBaseJFrameだけで十分だといえる。

これは同時にパラメータに日本語を含むことを原則にするということである。今までの例からみとも日本語を使う場合が圧倒的に多い。これは具体的には常にBaseFrame系はJcode.pmとコンビで使うということである。使用宣言については常にJcode.pmを先にする必要がある。BaseFrame.pmの中でJcode.pmの関数を使っているからである。そこに日本語が使われていなくても別に問題は生じない。ただし、日本語パラメータがない場合でもJcode.pmを読み込むというムダがあるが、これはやむをえない。

この変更に際して、BaseFrame系モジュール(BaseFrame.pm, BaseFrame2.pm, BaseFrameCss.pm)に ConvEuc()関数を追加した。このため、これらのモジュールはいずれも合計7関数になる。

これはパラメータの取得について、BaseFrame系のGetParam()関数とCGI.pmparam()関数は同時に使えないために作ったものである。すなわち、param()関数で取得したデータはナマのデータ(多くはSJIS)であって、文字コードがeuc-jpになっていない。それでこれを変換するルーチンが必要になるからである。

ちなみに、param()関数は複数のデータを返すという特殊な場合 ― チェックボックスでnameがすべて同じ場合複数選択リストボックス ― にしか使わない。そこで送信されたデータが日本語である場合にConvEuc()関数を使うことになる。

- 2019/06/17 -


Base Module (1)

Per/CGIPHPの基本モジュールを大整理する。現在はファイル名も内容も大半がバラバラで統一されていない。
必要な基本モジュール(ルーチン/関数)を以下の11ファイルに絞って、どこの位置にあっても同じ内容になるようにする。
次の位置にまとめて保存。ここから流用するようにすればよい。すべては省力化と思考経済、粗製濫造と大量生産のためである(笑)。
D:Homepage2/bin/BaseModule

Per/CGI

BaseFrame.pmは入力パラメーターの日本語文字コードの変換(→EUC-JP)が不要な場合に使う。BaseJFrame.pmはそれが必要な場合に使う(Jcode.pm)。
BaseJFrame2.pmは入力パラメーター内の改行コード(\r/\n)を削除しないで残す。BaseJFrame.pmは改行を削除する。この点が異なるだけ。これは事情によっては削除してもよい程度の差である。
Base(J)FrameCss.pmはスタイルの設定にeucjp.cssを読み込む。
PHPと異なって、BaseCheck.pmBase(J)Frame*.pmには組み込んでいない。使う場合は別途これを追加する必要がある。

ファイル名最終更新日
BaseCheck.pm2016-02-03
BaseConvert.pm2010-02-05
BaseFrame.pm2019-06-06
BaseFrameCss.pm2018-11-04
BaseJFrame.pm2019-06-16
BaseJFrame2.pm2019-06-16
BaseJFrameCss.pm2019-06-06
eucjp.css2018-10-31

これはWEB/ローカル共用で使うことができる。
ローカルでは認証やパラメーターチェックの部分の関数などを使わなければいいだけである。
その部分をカットしてしまうのはファイルの統一性という点からダメ(ローカル用でもそれらを入れておく)。

このBase Moduleは最終更新日がバラバラのものがいろいろな場所に散在している。
これらは本来は同じ内容のファイルでなければならないものである。下記のエリアは最新のものにすべて統一した。
  1. cgi-bin(WEB)
  2. cgi-bin/perl(WEB)
  3. cgi-bin/labo(WEB)
  4. bin(ローカル)
  5. pluto/bws/perl/src(ローカル)
  6. marine/perl/p1/srcと同位ディレクトリ(ローカル)
ただし、これらをローカルで使うにはApacheで指定したDocumentRoot(C:/Users/Editor/Homepage)内の相当位置に置かなければならない。ドライブD:では実行できない。

PHP

BaseCheck.php内の関数はすべてBaseFrame.php, BaseFrameCss.phpに組み込んである。したがって、BaseFrame(Css).phpを使う場合はBaseCheck.phpは使う必要はない。
BaseFrame(Css).phpとは異なるスタイルを使う場合で、パラメーターチェックルーチンだけを組み込む時に使う(たとえばeseek_n.phpなど)。
BaseFrame.phpBaseFrameCss.phpはスタイルの外部読み込み(eucjp.css)を使う点が異なるだけでそれ以外の内容は同じである。

ファイル名最終更新日
BaseCheck.php2019-06-14
BaseFrame.php2019-06-14
BaseFrameCss.php2019-06-14
eucjp.css2018-10-31

これはWEB/ローカル共用で使うことができる。
ローカルでは認証やパラメーターチェックの部分の関数などを使わなければいいだけである。
その部分をカットしてしまうのはファイルの統一性という点からダメ(ローカル用でもそれらを入れておく)。

このBase Moduleは最終更新日がバラバラのものがいろいろな場所に散在している。
これらは本来は同じ内容のファイルでなければならないものである。下記のエリアは最新のものにすべて統一した。
  1. res(WEB用)
  2. bin(ローカル用)
  3. pluto/bws/php/src(ローカル用)
  4. marine/php/h1/srcと同位ディレクトリ(ローカル用)
ただし、これらをローカルで使うにはApacheで指定したDocumentRoot(C:/Users/Editor/Homepage)内の相当位置に置かなければならない。ドライブD:では実行できない。

- 2019/06/14 -





CGI/PHPのBaseModuleの修正(tpc_0503)