Perl, PHP, SmartyそしてXAMPP

私がPerlに出会ったのは随分前のことです。
きっかけは何だったか忘れましたが、Perlに出会って以来すっかりPerlのことが気に入っています。
UNIXのShellに比べるととても柔軟で親しみやすいスクリプトなので、チョコチョコっとコードを書いて実行して楽しんでいました。
例えばフォルダにある沢山のファイル名にいっせいに接頭文字入れるとか、ファイルの行数をカウントするとか。
なによりもパターンマッチングが秀逸なので、コードや文字データで何かを探すときや変更するときによく使います。

出会った当時私はどこからかサンプルを見つけてきて簡単なCGIを書いたと思いますが、WEBの世界がこのように日常的ではなかったし、PerlそのものがCGI言語としてこんなに発展するとは思いませんでした。

どちらにしても私はWEBの世界は趣味程度しか知りません。
WindowsがUNIXを凌駕して以来、私は殆どWindows Formアプリケーションの仕事をしてきました。

Windows Formプログラマが、WEBプログラムで最初に理解しなければいけないのはポストバックです。
ユーザがブラウザからURLに要求を出すと、そのURLに対応したページがインターネットを介してブラウザにダウンロードされます。
ユーザがそのページに何かを入力しサブミットすると別のページに移動することもありますが、入力に不正があると通常サーバーはメッセージをつけて再度同じページをブラウザに送ります(ポストバック)。
すなわち一つのページ(プログラム)には、最初にユーザに表示される場合と、サーバーに送られた情報が再度ユーザに送り返される場合の両方の処理を書いておかなければなりません。
ページの大半をPerlでかいた場合、この仕組みをしっかり整理してかからないとプログラムが大変読みにくくなります。

その点PHPはHTMLの文書にPHPスクリプトを直接書き込むので、Perlですべてを書くことに比べれば可読性は格段によくなります。
しかしそれも限界があり、複雑なPHPのページではやはり読みやすいものではありません。

そこで[フレームワーク]の考えがでてきたと思います。
先にも書きましたが、私はWEBは素人で余り知りませんが、たまたまSmartyに出会いました。確かCMSのXOOPSをいたずらしていた時期だと思います。XOOPSにもSmartyが使われているらしいと知り、Smartyを勉強することにしました。

日本語のいい解説書がないので、英文のSmartyを読みました(著者は欧米人ではなくアジア人のようですが、なに人かよく分かりません)。
この本は必ずしもしっかり書いた本ではありませんが、入門書としては親しみの持てる解説書です。

Smartyはビジネスレイヤと表示レイヤを明確に分け、ビジネスレイヤはプログラマが、表示レイヤはデザイナが担当できるようにしたものです。
ビジネスロジックはPHPのプログラムです。
表示レイヤはテンプレートと言われるファイルで(拡張子はtplです)、基本的にはHTML文書ですが、ビジネスレイヤと通信し、ビジネスレイヤから送られてきたデータを展開するための仕組みが組み込まれています。

大変シンプルで好感を持っています。機会ある毎に使いたいと思っています。
ただし、PHPのフレームワークとしてはSymfonyが有名のようです。すこし勉強しようとしたのですが、なにか大掛かりのようで躊躇しています。
これも無料で使えますので機会があれば挑戦したいと思います。

ところで、PerlははじめはCPANのもの、ここ数年はActivePerlを使っていました。通常のバッチプログラムは、いずれもコンソール画面からコマンドを入力する形で実行します。
「いまどき、コマンドをたたく時代ではなかろう」とは思いましたが、ActiveStateのものは高価だし、無料のものは碌なものはないしと思っていましたが、ありました。
Strawberry Perl(開発環境はPadreと名づけられています)が無料であり、CPANが動作するのでとてもいいと思います。
今後はPerlはこのPadreを使いたいと思います。

WEBの開発用サーバとして、私はWindows Professionalに付属しているIISを使っていました。
今私はVistaのHomeをメインに使っていますのでIISが付属していません。
WEBサーバーに困っていましたが、XAMPPという便利はサーバーがあることが分かりました。
WEBの専門家は皆さんご存知なのでしょうが、Apacheにperl、php、mysql等々必要なコンポーネントがすべて組み込まれていて、しかもインストールもきわめて簡単です。
今後はWEB開発はIISが必然でない限り、XAMPP一本でいこうと思っています(ところが現在までのところ、XAMPPはXPでは問題ないのですが、私のVista Homeで動作しません。ポートの関係かと思います)。

error: コピーできません !!