プログラム

テンプレートを利用したプログラム開発

プログラム開発にテンプレートは必要か

WEBのテンプレートを利用する場合は必須!?

プログミングを行うと、当然ですが同じコードを書くことが多くなります。これを効率よく行うために、テンプレートを利用しますが、最近は、さまざまなフレームワークという仕組みを使うことが多くなっています。

テンプレートとフレームワークの違い

テンプレート

テンプレートはプログラムの一部を関数かしたり、共通部品としてテキストファイルなどに記載し、それを開発時に参照しながらコピペして同様のコーディングをしていきます。ただこれでは後から修正が発生した場合に、すべての箇所を変更する必要が発生します。

そこで1つテンプレートを作成し、そのテンプレートのファイルに共通部分をすべてコーディングします。プログラム開発時はテンプレートを利用して、テンプレート中の変更可能エリアのみにプログラムを書いていきます。こうすることにより、テンプレートに変更が発生した場合に、テンプレートを管理するツールで一気に変更が可能となります。

フレームワーク

WEBサイトを構築していくと、多くの場合、テンプレートを利用するかと思います。
ここでいうテンプレートはDreamweaverなどで利用する場合を想定しています。

テンプレートを利用すると特定のページでのみ行う処理を記述する必要がある場合、環境変数を利用するのが便利です。

環境変数(Environment Variables)とは

環境変数(Environment Variables)とは、オペレーティングシステムまたはWebサーバーが、PHPなどの言語に対して提供する設定や情報を保持する変数のことです。
例えば、PHPでウェブサイトを作るとき、これらの環境変数を使うことで、リクエストに関する情報や、サーバーに関する情報を取得することができます。
環境変数は特に、サーバーの状態、ユーザーのリクエスト情報、スクリプトの実行環境などを知るために使われます。

環境変数(Environment Variables)の利用方法

PHPでは、これらの情報を$_SERVER(スーパーグローバル変数)を通じて利用することができます。
以下は、代表的な環境変数とその用途について説明します。

(1)$_SERVER['SCRIPT_NAME']

スクリプトのパスを示します。
例えば、/index.php のように、現在実行されているスクリプトのパスを返します。リンクの生成や、フォームの送信先を指定する場合に使われることが多いです。


echo $_SERVER['SCRIPT_NAME']; // /index.php

(2)$_SERVER['SERVER_NAME']

サーバーのホスト名を示します。
通常、Webサーバーの名前やドメイン名が含まれます。例えば、example.com のような情報です。URLの生成や、ユーザーに表示する場合に便利です。


echo $_SERVER['SERVER_NAME']; // example.com
$_SERVER['HTTP_HOST']

(3)ホストのHTTPヘッダーに送信されているホスト名です。
例えば、example.com や localhost といった情報です。$_SERVER['SERVER_NAME'] と似ていますが、ポート番号を含む場合があります。


echo $_SERVER['HTTP_HOST']; // example.com
$_SERVER['REQUEST_URI']

(4)リクエストされたURIを示します。
/index.php?id=123 のように、URLのパスとクエリ文字列を含みます。この情報を使って、どのページがリクエストされているかを確認できます。


echo $_SERVER['REQUEST_URI']; // /index.php?id=123


それでは、特定ページでのみ実行する処理ですが、(1)を利用します。


    If InStr(Request.ServerVariables("SCRIPT_NAME"), "mcd") > 0 Then
        AAAAA
    Else
        BBBBB
    End If

上記の例ではSCRIPT_NAMEにmcdという文字列が含まれている場合にAAAAAを実行、含まれない場合にはBBBBBを実行するという記述になります。(ASPのサンプルになります)

まとめ

このように使うことで、テンプレートの活用の幅がより広がります。
テンプレートを利用することは、開発、メンテナンスにおいて非常に役に立ちます。
ぜひ環境変数を利用して、できるだけテンプレートを活用できるようにしましょう。

-プログラム
-