2009年11月11日水曜日

 

【PHP】guesswork - “薄っぺらなフレームワーク”

guesswork classic - guesswork
guesswork classicは、「ややこしいフレームワークは使いたくない」けど「なんでもありになりがちなPHPスクリプトをスッキリさせる指針が欲しい」と考えている人のための軽量なPHP4用フレームワークです。
とりあえず触ってみる <- Documents <- guesswork

解凍したディレクトリ内の「lib/」を任意の場所にアップロードし「lib/Guesswork.php」を読み込んで使う。

require_once '(ディレクトリパス)/lib/Guesswork.php';

Smartyの設定は次の通り。


class SampleController extends Controller
{
    var $_gw_default_action = "index";
    var $_gw_template_class = "(ディレクトリパス)/smarty/Smarty.class.php";
    var $_gw_template_templates_dir = 'templates';
    var $_gw_template_compile_dir = 'templates_c';

アクションとテンプレートの呼び出しは次の通り。他のフレームワークとも似ている。


    function executeIndex()
    {
            return $this->render('sample/index');
    }

「templates/」内に、この場合「sample/」ディレクトリを作ってテンプレートを置いている。
この様にコントローラ・クラス名と同名のディレクトリ内に置かないと上手くいかないようだ。
ただ、テンプレート内からSmartyタグでファイルを読み込む時は「templates/」直下が基準のよう。

/* Smartyテンプレートファイルからヘッダファイルの読込み */
{include file="./head.tpl"}

アクションの振り分けはフォームのhidden要素で決まる。

<input type="hidden" name="action" value="sending" />

この場合、フォームからPOSTされるとSendingアクション(executeSending())が実行される。
「(コントローラ・クラス名)Validator.class.php」にアクション毎のバリデーションを定義しないとエラーになる(「SampleValidator.class.php」内に「validateSending()」を記述)


class MailFormValidator extends Validator
{
    /**
     * 確認アクションでの検証。
     * @access public
     * @param array $values
     */
    function validateStaffName($values)
    {
       // バリデータ定義
    }
}

他のフレームワークだと「sample_mail.html」テンプレートと「executeSampleMail()」は関連付けられたりするが、guessworkはしてくれないようなので以下のようにすると可能。

// テンプレート
<input type="hidden" name="action" value="SampleMail" />
// コントローラ
return $this->render('sample/sample_mail');

最小限フレームワークなのでバリデーション関数は「lib/Guesswork/Validate.php」に「isEmpty()」だけでE-mailチェックも英数字チェックもない。

ラベル:


コメント: コメントを投稿

登録 コメントの投稿 [Atom]



この投稿へのリンク:

リンクを作成



<< ホーム

This page is powered by Blogger. Isn't yours?

登録 投稿 [Atom]

Google