はじめてのBEAR.Skeleton (1)
"はじめての"チュートリアル を見ながら BEAR.Sunday で何か作ってみる。
Sandbox にある Blog アプリケーション的なものがいいだろうか。
※ ベア吉は BEAR.Sunday のマスコットキャラクターです
自分のスペック
開発環境
つくるもの
- メモ管理できるアプリケーション
- GET / POST/ PUT/ DELETE がある
- お手本としてほぼ同じ要件のアプリ(Blog)が Sandbox にある
- BEAR.Skeleton を使用
準備
BEAR のスケルトンを使ってみる。
koriym/BEAR.Skeleton · GitHub
README.md に書いてあるコマンドを実行すればかんたんに入れられる。
yourAppName のところは今回「Memo」にした。
Composer べんりですね。
BEAR.Skeleton を入れた後、ビルトイン Web サーバを起動。
ブラウザから localhost:8088 にアクセスしてみる。
↓こんな感じの画面が表示されれば成功。
リソース?
BEAR.Sunday はリソース指向のフレームワーク。
WEB+DB Press vol.73 に掲載された「巨人の肩から PHP - BEAR.Sunday で RESTful なシステム開発」にもあるとおり、BEAR.Sunday には以下のようなリソースが用意されている。
- ページリソース
- Web ページと直接結びつくもの
- アプリケーションリソース
- Web ページと切り離されたシステム内部の機能と結びつくもの
ページリソース
/index へのリクエストにはどのリソースがどんな風に使われるのだろうか。
Web ページと結びついているのはページリソース。
ページリソースのファイルは Resource/Page/ 以下にある。
bear/apps/Memo/Resource/Page/Index.php
<?php namespace Blog\Resource\Page; use BEAR\Resource\AbstractObject as Page; use BEAR\Sunday\Inject\ResourceInject; /** * Index page */ class Index extends Page { use ResourceInject; public function onGet($name = 'BEAR.Sunday') { $this['greeting'] = 'Hello ' . $name; return $this; } }
bear/apps/Memo/Resource/Page/Index.tpl
{extends file="layout/default.tpl"} {block name=title}Index{/block} {block name=page} <h1>{$greeting}</h1> {/block}
Index#onGet や index.tpl を適当に書き換えてブラウザから /index にアクセスしてみると、 Index#onGet が GET リクエストを処理しているのがよく分かると思う。
オンラインエディタ
開発モードだとソースコードのオンライン編集が可能。
以下のアイコンをクリックするとエディタが開く。
編集して SAVE し、Web ページをリロードすると変更内容が反映されている。
Index#onGet はパラメータとして $name を受け取る。
/index?name=hoge でアクセスすると、 greeting のメッセージが "Hello BEAR.Sunday" から "Hello hoge" へ変わることも確認できる。
Index#onGet で $this に追加した要素は index.tpl で変数として使える。
以下のアイコンでリソースの状態を見ることもできるので、$this に要素を追加したり変更したりして確認してみるとおもしろい。
ドキュメント
ページリソースについては はじめてのWebページ を見ると楽しい。
次回へつづく(たぶん)
# 間違いやお気づきの点などありましたら、ツッコミいただけると嬉しいです。
# べあ吉ネタ → id:futurista999 さんありがとうございます。