読者です 読者をやめる 読者になる 読者になる

プログラミングは芸術だ!

web系エンジニアの備忘録 「プログラミングは芸術」を座右の銘として日々勉強中 最近Androidもやってます

SlimでシンプルなIT勉強会が探せるサービスを開発してみた【シンプルIT勉強会リスト】

前回charlie1012.hatenablog.jp

slimを使って簡単なwebサービスを開発してみました

シンプルIT勉強会リスト

www.simpleit.info


全体像

f:id:gamu1012:20150726001759p:plain
バッチで勉強会の情報が入ったファイルを生成しておいて、slimからそれを読み込んで表示するという、作りもシンプルなものです!

ソースコード

github.com

slimでviewの切り出しを行う

index.phpのrouteですべてを実装するのは、管理しづらいので、viewは切り出してみましょう

renderの設定

slimのappの生成時にtemplates.pathにviewディレクトリへのパスを設定してあげます

$this->app = new \Slim\Slim(array(
	"debug" => true,
	"templates.path" => dirname(__FILE__) . '/../view'
));

※$this->となっているのは、今回は自分の好みでRouterをclassにしており、appをクラス変数にしているからです

どのtemplateを使うか
$this->app->get("/", function () {
	$this->app->render("index.php");
});

上記のようにappのrenderにtemplate.path以下のパスを渡してあげれば大丈夫です!

Routerからviewへの値の受け渡し
$this->app->get("/", function () {
	$resource = $this->getFile('hot');
	$this->app->render("index.php", ['resource' => $resource, 'categories' => $this->categories, 'category' => 'hot']);
});

renderの第二引数に連想配列で渡してあげます
view側での変数名 => 中身 という形です

これでRouter兼ロジックとviewの切り分けができるようになりました!

バッチについて

connpassのAPIを叩いてシリアライズファイルにしているだけです
DBなんて使わなくてもwebサービスは作れるんだよ!
まあDBもファイルに書き出しているしな

VPSへの登録とドメイン設定

今回はさくらVPSとスタードメインで行いました

デプロイ

deployerで行っています。楽ちんです!
Deployer — Deployment Tool for PHP

cron設定

バッチを1日に2回動かすように設定しておきます

0  6,18  *  *  * cd /var/batch/simpleit; php ConnpassFileCreater.php > cron.log


次回
初めてwebサービスを公開してわかった3つのこと

合わせて読みたい
charlie1012.hatenablog.jp

charlie1012.hatenablog.jp