シンプル&パワフルなPHPライブラリ rhacoを使ってみよう!

第5回 Viewsで開発をもっと手軽に

この記事を読むのに必要な時間:およそ 2.5 分

前回は,rhaco アプリケーションの基本となるFlowの仕組みについて解説しました。今回は,アプリケーションに頻出する一連の動作をライブラリが実現する Views(汎用ビュー)という機能について解説していきます。

Viewsについて

ウェブアプリケーションの開発において,データの登録・一覧・変更・削除(CRUD)といった動作は,ある程度共通化できることが多いです。そのため,(特に)Ruby on Rails以降のフレームワークでは scaffolding と呼ばれる,アプリケーションの土台をジェネレートする機能が備わっていることもよくあります。

rhacoでは,これらの動作をひな形のようにしてライブラリで実現しています。簡単に言うと「どのモデルを用いて,どの動作するのか」を明示しさえすれば,CRUDを実現できるようになります。

これまで何度か使用しているセットアップアプリケーション(setup.php)のDB管理機能もこのViewsを用いて実現されています。

Viewsの持つ機能

Viewsを使うと,データベースに対して次のような機能が1つのメソッドで実現できるようになります。

  • 作成(確認画面あり/なし)
  • 更新(確認画面あり/なし)
  • 削除
  • 一覧(ページャ付き)

一覧機能の実装

さて,それでは前回 Flowを用いて実装した一覧画面を,Viewsを使ったものに書き換えてみましょう。

Views で一覧画面を実装するには,Views::read メソッドを使います。

views.php

<?php
require './__init__.php';
Rhaco::import('generic.Views');
Rhaco::import('model.Todo');

$views = new Views();
$views->read(new Todo());
$views->write('list.html');

テンプレートは前回作成したものを表示しています。

どうでしょう,幾分か簡単に書けるようになりましたね。リストだけではそれほど恩恵がわかりにくいかと思いますので,次はTodoを追加する機能を実装していきましょう。

データの登録処理

先に述べたように,Viewsを使うとCRUDがメソッド一つで実現できます。

まずは,データの登録の機能を作ってみます。データの登録は Views::create メソッドを使います。

views_create.php

<?php
require './__init__.php';
Rhaco::import('generic.Views');
Rhaco::import('model.Todo');

$views = new Views();
$views->create(new Todo(), Rhaco::url())->write();

これだけで,データの登録機能については実装完了です。createの第二引数にはViewsへfilterを与えることができますが,ここでの説明は割愛します。デフォルトでは,データの作成後にリダイレクトする先のURLを与えることができるようになっています。

早速, http://localhost/kaeru/views_create.php にアクセスしてみると,簡単なフォームが表示されます。

画像

これは,rhacoが持っている簡易的なフォームを仮に使用することで,テンプレートを作成することなくフォームを実現できます。全体のデザインが決まっていない場合など,一時的なテストに使うのに便利です。

著者プロフィール

佐藤佳祐(さとうけいすけ)

北海道の大学に在籍し,現在は絶賛就職活動中。nequalに所属し,PEARリポジトリサービス「Openpear」開発を担当。最近はrhaco2と格闘する日々。お仕事の話,待ってます。

URLhttp://riaf.jp/

コメント

コメントの記入