ファイルを探すならsfFinder

sfFinderクラスはファイルやディレクトリを探すときに使うクラスですが、バッチ処理で特定ディレクトリのファイルを読んで処理するような場合に非常に便利です。 例えばSOME_DATA_DIRディレクトリにある拡張子がdatのファイルを処理するには以下のような感じで書けます。

$files = sfFinder::type('file')->name('*.dat')->in(SOME_DATA_DIR);
foreach($files as $file){
  // 各ファイル毎に行う処理を記述する
  some_task($file);
}

$filesにはファイルのパスが配列として返ってきます。

その他にも色々メソッドは充実していて、 ファイルのサイズが10M以上のファイルを探す場合にはsize(’> 10M’)とメソッドを追加したり、maxdepth(5)とすることで5階層までしかファイルを探しに行かないようにする事も可能です。

symfony bookにも載っているので是非ご一読を。

dev環境からprod環境に変えると動かなくなる時の対処方法

Symfonyではdev(開発用)環境とprod(製品用)環境を使い分けて効率的に開発ができるようになっています。dev環境を使うと動作は遅いがログが詳細に記録され、開発段階では頻繁に変更を行う設定ファイルのキャッシュを行いません。これに対して、prod環境ではログは最小限になり設定ファイルのキャッシュを行う事で最大の実行速度を確保できるようになっています。このように環境を分けて開発できるのはプログラムの振る舞い自体はdevおよびprodで変わらない事が前提です。ところが、dev環境で開発後prod環境を試すと稀にそれまで動作していたプログラムが動かなくなってしまう事があります。今回は、そのようなケースの原因と対処方法を3点紹介します。

この投稿の続きを読む »dev環境からprod環境に変えると動かなくなる時の対処方法