Archives by date

You are browsing the site archives by date.

【CakePHP2.3】Configureクラス自分用まとめ。

自分用めも。

■設定値を書き込む

// 'hoge'という名前で'value'という値を書き込む
Configure::write('hoge', 'value');

■設定値を読み込む

// 'hoge'という名前の設定値を読み込む
$conf = Configure::read('hoge');

■設定値をファイルに書き出す

// 'hoge'という名前の設定値をmyConfig.phpとして書き出す
configure::dump('myConfig', 'default', array('hoge'));

※書き出されるディレクトリは「app/Config」なのでConfigフォルダに書き込み権限を与えなければならない
※第3引数を指定しなかった場合は全ての設定値が書き出される

■書き出した設定ファイルを読み込む

// 「app/Config」下の「myConfig.php」を読み込む
Configure::load('myConfig');

// ファイルの読み込みが完了したらread()メソッドで設定値を読み込む
$conf = configure::read('hoge');

 

おまけ。

■CakePHPのバージョンを取得する

$version = Configure::version();

 

【CakePHP2.3】外部クラスをオートロード対象として宣言する。

めも。

「App::uses()」を使用し利用したいクラスを宣言すると、そのクラスを呼び出した際に自動でインポートされるようになる。

■関数定義

App::uses($className, $location);

■引数詳細

引数 初期値 詳細
$className 省略不可 クラス名
$location 省略不可 クラスの所属するパッケージ名

以下例。

App::uses('myExampleClass', 'Lib');
App::uses('myCustomClass', 'Vendor');
App::uses('mySampleClass', 'Controller/Component');

appディレクトリ下のLibやVendorフォルダに外部クラスを置いてやることで、上記のようにオートロード対象として指定してやることが可能。
App::uses()はApp::build()で指定したパスリストと本メソッドで指定したクラス名を結びつけオートロードをするためのものなので、本質的なネームスペースとは異なることに注意されたし。

 

【CakePHP2.3】文字列中の特定のテキストにハイライトをかける。

「TextHelper::highlight()」メソッドを使う。

■関数定義

$this->Text->highlight($text, $phrase, $options);

■引数詳細

プロパティ 初期値 詳細
$text 省略不可 対象のテキスト
$phrase 省略不可 ハイライトしたいフレーズ
$options array() オプション(下記参照)

■$optionsに設定可能なパラメーター

キー 初期値 詳細
format ‘<span class=”highlight”>\1</span>’ ハイライト時のフォーマット
html false HTMLの混在したテキストを渡す場合はtrue、混在しない場合はfalse
regex “|%s|iu” 置換時に用いられる正規表現。%sは$phraseに置き換えられる

以下例。

コントローラー側で以下のような文字列をビューにセットしたとする。

$str = 'あいうえおかきくけこさしすせそたちつてとなにぬねの';
$this->set('str', $str);

次にビュー側で以下のように記述。

<?php echo $this->Text->highlight($str, 'くけこ'); ?>

すると以下のようなHTMLが出力される。

あいうえおかき<span class="highlight">くけこ</span>さしすせそたちつてとなにぬねの

特定のテキストの見せ方が自由自在になるので検索機能周りと連携させるとめちゃくちゃ便利。