BEAR.Sundayでの「Hello World!」①

今日は、リソース指向フレームワークBEAR.Sundayで「Hello World!」をやってみます。

ComposerによるBEAR.Sundayのインストール

ベンダー名はMy、アプリケーション名はHelloとします。これらの指定は名前空間で使われます。

$ composer create-project bear/skeleton My.Hello
$ cd My.Hello
$ composer install

ちなみに、以下のバージョンがインストールされました。

  • bear/skeleton (0.10.4)
  • bear/resource (0.13.1)
  • bear/sunday (0.10.5)
  • bear/package (0.11.2)
  • bear/dev-package (0.2.2)

Helloページリソースの作成

src/Resource/PageフォルダにHello.phpを作成します。

src/Resource/Page/Hello.php

<?php

namespace My\Hello\Resource\Page;

use BEAR\Resource\ResourceObject;

class Hello extends ResourceObject
{
    public function onGet($name = 'World')
    {
        $this->body = 'Hello ' . $name . '!';
        return $this;
    }
}

Note: Webサーバで上記のソースを提供した場合、XSSが可能になりますので注意してください。実際のサイトではテンプレートエンジンでエスケープして表示してください。

BEAR.SundayはMVCパターンではないフレームワークです。MVCでのコントローラに相当するものは「ページリソース」です。ページリソースはページコントローラに相当します。

onGet()メソッドは、このリソースがGETされた場合に実行されます。

$this->bodyは、このリソースのボディ(リソースの値)です。

最後にreturn $thisとして自分自身を返します。

ビルトインWebサーバの起動

PHPのビルトインWebサーバを起動して、ブラウザからアクセスできるようにしましょう。

$ php -S 0.0.0.0:8000 -t var/www/ bootstrap/contexts/dev.php

ブラウザからのアクセス

http://localhost:8000/helloにアクセスしてみましょう。

Note: もし、何かエラーが出た場合は、Xdebugをoffにしてみましょう。

次は、http://localhost:8000/hello?name=BEARにアクセスしてみましょう。

クエリ文字列でnameにBEARを渡しましたので、表示が「Hello BEAR!」に変わりました。

コマンドラインからのアクセス

ブラウザやWebサーバがなくても、BEAR.Sundayではコマンドラインからもページにアクセスできます。

$ php bootstrap/contexts/dev.php get /hello
200 OK
cache-control: ["no-cache"]
date: ["Sat, 09 Jun 2014 07:01:27 GMT"]
[BODY]
Hello World!

[BODY]Hello World!が入っています。

次に/hello?name=BEARgetしてみましょう。

$ php bootstrap/contexts/dev.php get /hello?name=BEAR
200 OK
cache-control: ["no-cache"]
date: ["Sat, 09 Jun 2014 07:01:32 GMT"]
[BODY]
Hello BEAR!

[BODY]Hello BEAR!に変わりました。

まとめ

MVCではなかったり、リソース指向、アスペクト指向、ハイパーメディアなどのはっきりとはわからない用語がたくさん出てくるため、なんだか難しそうに感じるBEAR.Sundayです。

しかし、こうして最小限のHello Worldを見ると、そんなにわかりにくいところはありません。むしろ、簡単な気がしてきましたよ!

XSSを残したままにするのもなんですので、次回はテンプレートエンジンを使って、HTMLでの表示をしてみたいと思います。

次回: BEAR.Sundayでの「Hello World!」②

関連

Date: 2014/06/09

Tags: php, bear