トップ » サービス » 技術情報 » symfony » ヘルパー » カスタムヘルパーの作り方
symfony

カスタムヘルパーの作り方 - 記述日2008/3/22 - 綿引


symfonyのヘルパーを直接編集するとバージョンアップ時などに困るので、オートロード領域にオリジナルのヘルパーを作成して使用する。


(手順) ファイル名がHelper.phpで終わるPHPファイルを作成し、それをlibディレクトリ配下のhelperと命名されたサブディレクトリに配置する。

★設置可能な場所と有効範囲
/lib/helper/{Name}Helper.php …プロジェクト全体で使用可能
/myapp/lib/helper/{Name}Helper.php …アプリケーション内のみで使用可能
/mymodule/lib/helper/{Name}Helper.php …モジュール内でのみ使用可能

※使用するテンプレート内では宣言が必要
<?php use_helper('Name') ?>

試しにmbTruncateHelper.phpを作ってみた。

//symfonyにtruncate_textヘルパーがあるので、継承した方が良いかも…
function mb_truncate_text($text, $length = 30, $truncate_string = "...", $truncate_lastspace = false)
{
    mb_internal_encoding("UTF-8");
    
    if ($text == "")
    {
        return "";
    }

    if (mb_strlen($text) > $length)
    {
        $truncate_text = mb_substr($text, 0, $length - strlen($truncate_string));
        if($truncate_lastspace)
        {
            $truncate_text = mb_preg_replace("/\s+?(\S+)?$/", "", $truncate_text);
        }

        return $truncate_text.$truncate_string;
    }
    else
    {
        return $text;
    }
}

これを/lib/helper/の下に設置し、テンプレート内にと宣言すると使用できることを確認。

※使用例 <?php echo mb_truncate_text($objProduct->getNote(),80,'・・・'); ?>


symfony 最新記事

↑Pagetop