コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

月曜日が来てしまったのでスマーティに月曜日を判定するページをつくってしまった

毎度恒例の月曜日です

月曜日になるとメッセージが表示されるページを作りました。今回はPHPのテンプレートエンジンSmartyを使って作りました。
なんかいつも同じことやってるなあと思う。もう月曜日カテゴリーつくってもいい気がするね。


Smartyについて。
PHP Template Engine | Smarty

SmartyPHP のためのテンプレートエンジンです。具体的に言うと、php のプレゼンテーションからアプリケーションのロジックとコンテンツを分離して管理する事を容易にします。 これは、プログラマーとテンプレートデザイナーの役割が異なり、 これらの役割を違う人間が受け持っている場合に最適だと言えます。

こんな感じのものらしいよ。要するに便利らしい。


プログラムにせよスクリプトにせよ、はじめて触ったら「ハローワールドが出来ました!」でいい気がするのだけど、個人的に毎度同じ結果がでるものは楽しくないので毎度こんなものつくっちゃってます。こんなもの作ってないでゲームの1つや2つ作ってた方が生産的ですね。

つくりました

f:id:andron:20161019124547p:plain
洒落っ気のないページができました。

フォルダ構成は次の通りです。
f:id:andron:20161019125835p:plain
間に色々あったりしますがとりあえず必要そうなところだけ抜粋。ダウンロードして持ってきたブツに「sample00」を作成し、「sample00」以下にフォルダとファイルを勝手に作っている感じです。

以下ソースコード
phpファイルの方

<?php

require_once('../libs/Smarty.class.php');

$smarty = new Smarty();

// ***に必要なパス。
$smarty->template_dir = 'C:***/smarty-3.1.30/sample00/templates/';
$smarty->compile_dir  = 'C:***/smarty-3.1.30/sample00/templates_c/';
$smarty->config_dir   = 'C:***/smarty-3.1.30/sample00/configs/';
$smarty->cache_dir    = 'C:***/smarty-3.1.30/cache/';

$smarty->assign('msg','お知らせ');
$smarty->display('sample.tpl');
?>

tplファイルの方

{* Smarty コメント *}
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Smartyだよ。</title>
</head>
<body>

<h1>急に月曜日が来たので……</h1>
<hr>
<h2>動作環境:Smarty Version {$smarty.version}</h2>
<hr>
<h1>{$msg}</h1>
<p>現在の曜日: {$smarty.now|date_format:"%w"|replace:0:"日"|replace:1:"月"|replace:2:"火"|replace:3:"水"|replace:4:"木"|replace:5:"金"|replace:6:"土"}曜日</p>
{if {$smarty.now|date_format:"%w"} eq 1}
	<p>月曜日だよ。おめでとう</p>
{else}
	<p>なんでもない日をおめでとう。</p>
{/if}

</body>
</html>
余談

作ったphpファイルの10行目ぐらいまで、おまじない文法としか見てないから何やってるんだろうなみたいな感じです。エラー吐き出してわけわかんなくなった時にまた調べて確認することになるんだろうな……。

おまじないさえ作ってしまえば、下のサイトを参考にtplファイルいじるだけで色々できます。月曜日判定器以外にも何かWebアプリのネタになりそうなものを考えないと使う機会なさそうだけど、便利なものが取り揃ってます。
Part II. テンプレートデザイナのための Smarty | Smarty


そろそろいい加減にApache(Webサーバソフトウェア)とか導入しないとなあと考えてるのに面倒臭がって下記のようなbatファイル作って済ませて、導入する気が完全にないし僕はダメです。

@echo off
php -S localhost:8000

Apache導入して、Smartyのフォルダをhtdocsに突っ込むだけなのにね……。