symfonyでタスク

| コメント(0) | トラックバック(0)

symfonyはご存じの通りwebアプリケーションを作るためのPHPのフレームワークなんだけど、それ以外にも便利なな機能がある。

システムを作るのって、単に表に出てくる機能を作るだけじゃなくて、バックアップだったりデータのメンテナンスだったりってのも含まれるんだけど、バックグラウンドで動くタスク・ジョブを簡単に作れる機能がsymfonyにはある。1.2のリファレンスにcookbookに説明があるので、1.2から出来た機能かも。

 ま、このページの説明で大体間に合ってしまう気もするけど、少し説明。

■DBへのアクセス

sfBaseTaskの子クラスの中ではsymfonyのウェブアプリ側で使えるような機能が(多分)全部使える。上記のCookbookには「データベースレイヤーは必要ですか?」っていう見出しの下に

$databaseManager = new sfDatabaseManager($this->configuration);

 なんてコードが書いてあるけど、(少なくともsymfony 1.4では)普通にモデルクラス経由でDBアクセスできるので、非常に簡単。

■設定ファイルから値を取得

app.ymlから値を取得するというのは良くある事だと思うけど、そもそもtaskはどのapplication(backend, frontend etc.)に属すものなんだろうか…どうやら、以下のように指定できるらしい。このページを参考。

    $this->addOptions(array(
      // アプリケーション名はfrontend, backend等
      new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name', 'アプリケーション名'),
      new sfCommandOption('env', null, sfCommandOption::PARAMETER_REQUIRED, 'The environment', 'dev'),
      new sfCommandOption('connection', null, sfCommandOption::PARAMETER_REQUIRED, 'The connection name', 'doctrine'),
      // add your own options here
    ));

こうして作ったタスクをcronで動かしたり、ジョブスケジューラから動かしたり、なんてすれば立派なシステムへ更に一歩近づけるかな、と。 

トラックバック(0)

トラックバックURL: http://www.kazu.tv/blog-mgr/mt-tb.cgi/942

コメントする

このブログの作者

名前:kazu
仕事:IT関係の何でも屋
メール:kazu 後幕 kazu どと tv
詳しくはこの辺

このブログ記事について

このページは、kazuが2010年7月24日 16:32に書いたブログ記事です。

ひとつ前のブログ記事は「IIS 6.0のパフォーマンス調査・チューニング」です。

次のブログ記事は「app.ymlから値を読む」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ