PHPの基礎【テンプレート】

今回は、PHPを使ったテンプレート処理の説明です。

PHPだけを使った処理ですがフレームワークを使う上で知っておきたいPHPの知識ですので、概念をつかむつもりで理解してください。

まずはフォルダーを用意します。

C:¥xampp¥htdocs¥web¥phplayoutというフォルダを作ります。
(↑この書き方を絶対パスといいます。)
今後はlocalhostをドキュメントルートとして相対パスで以下のように書いて説明します。
/web/phplayout
同じフォルダーを意味する2通りの書き方です。

まず、index.phpというファイルを作ります。内容は以下の通りです。

<html>
<body>
    <table>
        <tr>
            <td>
                <a href=”./”>インデックスページ</a></td>
            <td>
                <a href=”./index2.php”>2ページ目</a></td>
            <td>
                <a href=”./index3.php”>3ページ目</a></td>
        </tr>
    </table>
    <h1>インデックスページ</h1>
</body>
</html>
ブラウザーで確認してみます。
普通に表示できています。
上部の2ページ目、3ページ目をクリックしてもまだ作っていないのでエラーで怒られるはずです。
ここでこの上部のリンクを別ファイルにしておくと、これから作る2ページ目、3ページ目がちょっと楽に作れるような気がしませんか?
3枚共に同じテーブル組のタグを書く必要がなくなりますね。
では、今作ったindex.phpからナビゲーションのテーブルタグを取っ払って、新しくファイルを作ります。
/phplayout/nav.phpというファイルを作り以下の内容で保存します。
<table>
    <tr>
        <td>
            <a href=”./”>インデックスページ</a></td>
        <td>
            <a href=”./index2.php”>2ページ目</a></td>
        <td>
            <a href=”./index3.php”>3ページ目</a></td>
    </tr>
</table>
ナビの部分を切り取った後index.phpは以下のように命令を書き足して保存してください。
<html>
<body>
    <?php include(‘./nav.php’); ?>
    <h1>インデックスページ</h1>
</body>
</html>
phpの新しい関数が出てきましたinclude()です。
これは、「引数で指定したファイルを丸ごと取ってきて展開しなさい」という命令です。
では、もう一度ブラウザーで見てみます。
http://localhost/web/phplayout/
ちゃんとナビの部分がぶち込まれています。
では、2ページ目、3ページ目を作ります。
/phplayout/index2.phpというファイルを作り以下の内容で保存します。
<html>
<body>
    <?php include(‘./nav.php’); ?>
    <h1>2ページ目</h1>
</body>
</html>
/phplayout/index3.phpというファイルを作り以下の内容で保存します。
<html>
<body>
    <?php include(‘./nav.php’); ?>
    <h1>3ページ目</h1>
</body>
</html>
どちらもナビの部分のテーブル組みが一行でかけました。
念のため確認します。
2ページ目の確認
http://localhost/web/phplayout/index2.php
ちゃんとナビの部分がぶち込まれています。
3ページ目の確認
http://localhost/web/phplayout/index3.php
こちらもちゃんとナビの部分がぶち込まれています。
このようにPHPを使うと簡単にメンテナンス性の高い設計ができます。

このようなPHPの機能を総合的に実装して使いやすくしたものがフレームワークとなります。

Laravelの場合、bladeといって素のPHPよりさらに使いやすいテンプレートシステムが装備されています。

では次回はPHPとApacheの機能でリライトの仕組みをやります。