渡された値に対して、常に同じ処理をかける
年末・年始・・・気がつけば2週間ブログの更新をお休みしてた。
フレームワーク「guesswork」。好調に開発を進めている。かなり使いやすい。まもなくPHP4のサポート期限が切れるので、PHP5対応の新バージョンが待たれるところだ。いちおう原稿バージョン(0.0.3)でもPHP5で動作するとのことなので、さほど気にはしていないのだが・・・。
guessworkで、外部からGETやPOSTで渡された変数に共通した処理を加える機能を実装した。やり方としては、適当な名前でControllerクラスを継承したクラスを作成し、その中に共通処理を記述した。以後、基本的に、この新しく作ったクラスを読み込んで継承していく作りとなる。
<?php
require_once(dirname(__FILE__).’/../Guesswork.php’);
class myController extends Controller
{
function init()
{
$this->cleanup();
// DB接続などはここに記述
}
function cleanup()
{
$this->_gw_params=$this->recursiveCleanUp($this->_gw_params);
}
function recursiveCleanUp($params)
{
foreach($params as $param => $value){
if(is_array($value)){
$value=$this->recursiveCleanUp($value);
}elseif(is_string($value)){
$value=trim($value); // ここに共通処理をかく
}
$params[$param]=$value;
}
return $params;
}
}
配列で値が渡された際に、再帰的に処理しているところがミソ。あと、_gw_params変数を見つけたのがよかった。
快適。