BEAR.SundayでWebアプリケーションフレームワークを構築

BEAR.SundayはRESTに基づくPHP製のWebアプリケーションフレームワークです。すべてがRESTリソースであり、はるかに簡単な設計と拡張性を持っています。ここではBEAR.SundayにおけるWebアプリケーションフレームワークの構築について解説していきます。

01: 環境

  • Raspbian GNU/Linux 8.0 (jessie)

02: インストール

bash


# apacheのインストール
$ sudo apt-get install apache2

# PHPのインストール
$ sudo apt-get install php5

# PHPでcurlを使用する拡張モジュールのインストール
$ sudo apt-get install php5-curl

# composerのインストール
$ curl -sS https://getcomposer.org/installer | php
$ sudo -s mv composer.phar /usr/local/bin/composer
$ sudo chown root:staff /usr/local/bin/composer

ComposerはPHP用のパッケージ管理システムであり、パッケージの依存関係やバージョンなどを管理します。また、PEARと違い、プロジェクト単位で管理しますので、複数のプロジェクトで異なるバージョンのライブラリが使用できます。

03: BEAR.Sundayプロジェクトの作成

bash


# プロジェクトのひな形を作成
$ composer create-project -n bear/skeleton BEARSample

# Composerでインストールしたパッケージを確認
$ composer show -i

# サーバーの起動
$ cd BEARSample
$ php -S 192.168.11.20:8000 var/www/index.php
PHP 5.6.29-0+deb8u1 Development Server started at Wed Apr  5 01:57:36 2017
Listening on http://192.168.11.20:8000
Document root is /home/pi/Desktop/BEARSample
Press Ctrl-C to quit.

ブラウザで「http://192.168.11.20:8000」へアクセスして以下のJSON文字列が表示できればBEAR.Sundayプロジェクトの作成に成功しています。

04: リソースファイルの作成

BEAR.Sundayは「URLに対応するリソースクラスの定義」、「HTTPメソッドに対応するリソースクラスのメソッドの定義」の流れで処理を実装していきます。下記のHello.phpを例にとると、「リソースクラスの定義がHello」、「リソースクラスのメソッドの定義がonGet」に対応しています。このHello.phpを「src/Resource/Page/」に保存します。

Hello.php


<?php
namespace MyVendor\MyProject\Resource\Page;

use BEAR\Resource\ResourceObject;

class Hello extends ResourceObject {
  public function onGet($name = 'BEAR.Sunday') {
    $this['greeting'] = 'Hello ' . $name;
    return $this;
  }
}

05: 動作確認

ブラウザから「http://192.168.11.20:8000/hello?name=World」へアクセスします。以下のJSON文字列が返ってくれば成功です。

06: 所感

簡単にRESTに基づくPHP製のWebアプリケーションが作成できました。