知っていると便利なCakePHP2のコアライブラリ 〜String編〜

CakePHP2を使い始めて約2年が経ちましたが最近やっとコアライブラリまで目がいくようになりました(遅い)
CakePHPにはコアライブラリとしてたくさんの便利な関数がつまっています。
これらを知っているだけでも開発が相当便利になるなぁと最近感じているのでその中から今回は「String」ライブラリの中から便利だなぁと思う関数を紹介したいと思います。

Stringライブラリの使い方

使いたいクラス内で以下のコードを挿入すればあとはスタティックに使うことが出来ます。

App::use('String', 'Utility');

String::tokenize($data, ":");

String::tokenize($data, $separator = ‘,’, $leftBound = ‘(‘, $rightBound = ‘)’)

$separatorで$dataをトークン化します。$leftBountと$rightBoundの間にある$separatorは無視されるので結構便利です。
データをある定型化しておいてそれを分割するようなときに便利です。

$data = "Tagami:Daiki:DAI199";
$result = String::tokenize($data, ':');
debug($result);
// 結果
// => array('Tagami', 'Daiki', 'DAI199');

String::insert($string, $data, $options = array())

文字列内にシンボルのような形でキーの値を書いておいて、それに対応する$dataの値を入れてくれる関数です。
シンボルの形は$optionsで変更可能です。
ドキュメントは以下です。
class String::insert()

$string = ":name is :age years old.";
$result = String::insert($string, ['name'=>'tagami', 'age'=>23]);
// 結果
// => "tagami is 23 years old."

$string = "*name* is *age* years old.";
$result = String::insert($string, ['name'=>'tagami', 'age'=>23], ['before'=>'*', 'after'=>'*']);
// 結果
// => "tagami is 23 years old."

String::highlight($haystack, $needle, $options = array())

$haystackの文字列の中から$needleに当てはまる文字列を$options[‘format’]で指定した文字列でハイライト表示します。
オプションとしては以下があります。

  • format・・・文字列。ハイライト表示に使うHTMLを指定する
  • html・・・真偽値。trueの場合はHTMLタグを無視してテキスト部分のみハイライト表示する
$string = "これはテストです。テスト出来るかな?";
$result = String::highlight($string, 'テスト', ['format'=>'\1']);
// 結果
// => "これはテストです。テスト出来るかな?"

String::toList(array $list, $and = ‘and’)

最後にちょっと面白い関数があったので紹介します。
$listの文字列を結合して、最後の結合箇所で利用する文字列を指定出来ます。
ちょっと何言ってるかわからないと思うので以下の例を見てみてください。わかるはずです。

$colors = ['red', 'orange', 'yellow', 'blue'];
$result = String::toList($colors);
// 結果
// => "red, orange, yellow and blue"

上のような感じで使います。’and’の部分は変更可能なので以下のようにも使えますね。

$lang = ['日本語', '英語', 'ドイツ語'];
$result = String::toList($lang, 'そして');
// 結果
// => "日本語, 英語 そして ドイツ語"

最後に

意外と知っているだけで自分で実装しなくていいので便利ですよね。
たまにドキュメントをだらだら読むのでまた何かいいものが見つかれば書いていきたいなぁと思います。

今回紹介したもののドキュメントは以下になります。

コアライブラリ – String

これ買いました