えっちらおっちらPHP
2002年10月21日 00:43
まだ書いてなかったのだが、本日は会社で philsci.info のベースとなるコードを書いてみた。と言っても大げさなものではなく、XHTML のヘッダー部分と <body> … </body> 部分を分けて、それぞれ引き渡されたクエリ(ページ固有の番号)にしたがって内容を出力するというものです。ページに固有の情報は、XML として外に出すことにしました。.inc ファイルに配列とかで書くと再編集がうざいしページを読むたびに全ての配列要素をメモリへ取り込むこととなり、無駄もいいところです。そういう意味では、IW で JavaScript で書いている実装は非常にまずい。
んで、単なる好みの話なのだが、僕はクラス定義ファイルの拡張子を .class とか .cls と書くことが多い。実は .class は Java で使うし、.cls も確か何かの言語で使う。ゆえにあまり好ましくないのだが、Java と PHP を同時に使う案件など殆どないからいいだろうと。どうもね、.inc という拡張子は好きになれんのよ。呼び出し側が require_once(); だったらどうするんだとか考えるし(笑。ちなみに include(); と require(); の違いは、読み込み失敗時にどういう処理をするかという点にあります。どちらも _once をつけると一回だけ読み込むので、その中に定義したメソッドを何度呼び出しても最初に読み込んでメモリへ格納してあるクラス定義を使ってくれるので、entends とかややこしいことをしなければ _once を付けて呼び出すのが吉かと。
あとは書くのを忘れていましたが、実際に philsci.info へ行った人のブラウザが読むのは、初期化するクエリ付きで本体の index.php へリダイレクトする HTML ファイルです。つまり、philsci.info/index.html にアクセスしてから、ヘッダーに書いてあるリフレッシュは get メソッドでの初期化クエリを持っていて、./index.php?pageid=000000000000 とかにリダイレクトされてインデックスページが表示されるという仕組みです。index.php に初期化の値を書いたら、別のページの値を読んで処理するためのバイパスを設けなければならなくなるから、というのが理由です。
