中級プログラマの自宅でPHP ブログ

自宅用ポータルシステム「MyHome Portal」をオープンソースで公開。MyHome Portalの説明とエンハンス情報。

オブジェクト指向を隠蔽

myHome Portalの携帯端末スケジュール表示では、携帯用アプリの開発ツールキットHAWHAWを利用しています。

HAWHAWは、オブジェクト指向を使ったクラス・ライブラリーとして作成されています。

myHome Portalの携帯端末スケジュール表示のメインソース(_mobile/calendar/index.php)からは、あえてHAWHAWコールのオブジェクト指向的プログラミングを隠蔽(オブジェクト指向で別の意味で使われる用語です)してみました。

_mobile/__common__/include-common-mobile.phpの中にオブジェクト指向的プログラミングを閉じ込めています。

手続き型(?)プログラミングの方が、ステップ数も少なくすっきりとわかり易いと思うのは私だけでしょうか?

【_mobile/calendar/index.php】一部

mobile_add_text($myPage, $rec['c_subject'], 'bold', $rec['c_categoryDisplayColor']);
mobile_add_memo($myPage, $rec['c_memo']);

【_mobile/__common__/include-common-mobile.php】一部

function mobile_add_text($myPage, $text, $attrib='', $color='', $br=1) {
    if ($attrib == 'bold') {
        $attrib=HAW_TEXTFORMAT_BOLD;
    } else {
        $attrib=HAW_TEXTFORMAT_NORMAL;
    }
    $myText = new HAW_text(my_htmlspecialchars(mobile_encode($text)), $attrib);
    if ($color <> '') {
        $myText->set_color($color);
    }
    $myText->set_br($br);
    $myPage->add_text($myText);
}
function mobile_add_memo($myPage, $memo) {
    $memo_ary = split("\n", strip_tags($memo));
    foreach ($memo_ary as $str) {
        mobile_add_text($myPage, $str);
    }
}