- symfony 1.4 メモ(アクション)
- symfony 1.4 メモ(context)
- symfony 1.4 メモ(モデル)
- symfony 1.4 メモ(schemaの書き方)
- symfony 1.4 メモ(Doctrine)
- symfony 1.4 メモ(フォーム)
- symfony 1.4 メモ(コマンド)
- symfony 1.4 メモ(ユーティリティ)
キャメルケース⇔アンダースコア
// キャメルケースに変換する
$CamelizedString = sfInflector::camelize( "camelized_string" );
// アンダースコアに変換する
$underscored_string = sfInflector::underscore( "UnderscoredString" );
YAML形式の読み書き
// YAML形式のファイルを読み込む
sfYaml::load('/path/to/config.yml');
// 連想配列をYAML形式で書き出す
$yamlString = sfYaml::dump($data); // YAML形式の文字列に変換
file_put_contents('/path/to/config.yml', $yamlString); // ファイルに保存
sfConfigへの設定の読み書き
// 設定を保存
sfConfig::set('test_config', 'テストの値');
// 設定を読み込む
$value = sfConfig::get('test_config');
// sfConfigの設定値を設定名で埋め込む
$message = 'libディレクトリの絶対パスはsf_lib_dirで参照でき、%sf_lib_dir%です。';
$message = sfToolkit::replaceConstants($message);
echo $message; // libディレクトリの絶対パスはsf_lib_dirで参照でき、/var/www/sf14/libです。
配列関連
空の配列かどうか判定
$test1 = array
(
'a' => 1,
'b' => null
);
$test2 = array
(
'a' => '',
'b' => null
);
$ret = sfToolkit::isArrayValuesEmpty($test1);
var_dump($ret); // FALSE
$ret = sfToolkit::isArrayValuesEmpty($test2);
var_dump($ret); // TRUE
多層階層の配列をマージ
sfToolkit::arrayDeepMerge() を使えば多層階層の配列をマージできます。
$array1 = array
(
'foo' => array
(
'bar1'=>'bar1data',
'bar2'=>'bar2data',
),
'baz' => 'bazdata'
);
$array2 = array
(
'foo' => array
(
'bar1'=>'bar1data',
'bar3'=>'bar3data',
),
'baz2' => 'baz2data'
);
$merge = array_merge($array1, $array2);
var_dump($merge);
$deepMerge = sfToolkit::arrayDeepMerge($array1, $array2);
var_dump($deepMerge);
// array_merge()の結果
array(3) {
["foo"]=>
array(2) {
["bar1"]=>
string(8) "bar1data"
["bar3"]=>
string(8) "bar3data"
}
["baz"]=>
string(7) "bazdata"
["baz2"]=>
string(8) "baz2data"
}
// sfToolkit::arrayDeepMerge()の結果
array(3) {
["foo"]=>
array(3) {
["bar1"]=>
string(8) "bar1data"
["bar2"]=>
string(8) "bar2data"
["bar3"]=>
string(8) "bar3data"
}
["baz"]=>
string(7) "bazdata"
["baz2"]=>
string(8) "baz2data"
}
ファイル操作関連
ファイル検索
$finder = new sfFinder();
$files = $finder->name('*.html')
->in('/path/to/lib');
foreach ($files as $file)
{
// 各ファイルの処理
}
ディレクトリ内を削除
// cache/my_cacheディレクトリ内を空にする
sfToolkit::clearDirectory(sfConfig::get('sf_cache_dir') . '/my_cache');
特定ファイルを削除
// cache/my_cacheディレクトリ内のcsvファイルを削除する
sfToolkit::clearGlob(sfConfig::get('sf_cache_dir') . '/my_cache/*.csv');