LoginSignup
0
2

More than 3 years have passed since last update.

symfony 1.4 メモ(ユーティリティ)

Last updated at Posted at 2017-04-02
  1. symfony 1.4 メモ(アクション)
  2. symfony 1.4 メモ(context)
  3. symfony 1.4 メモ(モデル)
  4. symfony 1.4 メモ(schemaの書き方)
  5. symfony 1.4 メモ(Doctrine)
  6. symfony 1.4 メモ(フォーム)
  7. symfony 1.4 メモ(コマンド)
  8. 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');
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2