Apache::RegistryFilter - Apache::Filter チェーン内での Perl スクリプトの実行
#httpd.conf 内
PerlModule Apache::RegistryFilter
# スクリプトの出力を Apache::SSI に通す <Files ~ "\.pl$"> PerlSetVar Filter on SetHandler perl-script PerlHandler Apache::RegistryFilter Apache::SSI </Files>
# テンプレートを利用したいくつかの Perl コード生成と実行 <Files ~ "\.tmpl$"> PerlSetVar Filter on SetHandler perl-script PerlHandler YourModule::GenCode Apache::RegistryFilter </Files>
このモジュールは Apache::RegistryNG のサブクラスで、Apache::RegistryNG の全ての機能を含んでいます。二つの間の違いはこのモジュールが Apache::Filter モジュールと共に利用できるというだけです。 このようなことは Apache::RegistryNG では出来ません。
フィルタのセットアップ方法の情報は、Apache::Filter のドキュメントを ご覧下さい。
この時点で、あなたがあなたの Registry スクリプトにしなくてはいけないかも 知れないことが一つだけあります。それは非常に細かく、判りづらいことです。 もし、他にもあったならば、どんな変更でも私に指摘してください。
もしあなたが Apache の $r->send_fd($filehandle) メソッドを呼び出すなら、その出力は フィルタのチェーンを通してフィルタされることなくブラウザに直接送られます。 もしあなたのスクリプトがチェーン内の最後のフィルタならこれでいいですが、 そうでないならば望む動作をしないでしょう。
これは Apache::RegistryNG のサブクラスであって Apache::Registry のサブクラス ではありません。(Apache::Registry をサブクラス化することは容易ではない) Apache::RegistryNG は機能的にApache::Registry と同等であるとされていますが、 Apache::RegistryNG は十分なテストがされているとは言えない面もあります。
perl(1), mod_perl(3), Apache::Filter(3)
Ken Williams <ken@forum.swarthmore.edu>
谷口公一 <taniguchi@users.sourceforge.jp>