プラグインが増えてます

はじめまして。最近symfonyを使い始めたarashoです。symfonyを使い始めてまだ数ヶ月の未熟者ですが本家情報などを中心に何かネタがあれば載せて行きたいと思います。 symfonyはかゆいところに手が届きつつ、気軽に使えるのがいいですね。

さて、symfony本家では1.0のリリースに向けて相変わらず活発に開発が進んでいますが、最近はフレームワークよりもプラグインの整備に力が注がれているようにみえます。 その中で最近追加されたもので、実際に使えそうなものを紹介したいと思います。

sfPropelParanoidBehaviorPlugin plugin

The sfPropelParanoidBehaviorPlugin is a symfony plugin that provides a new Propel behavior. If you enable this behavior for one of your model class, deletion of any object of this class is disabled and replaced with the updating of the deleted_at column of the object.

propelのdeleteメソッドで物理削除ではなく、論理削除を行うプラグインです。仕組みとしては内部的に デフォルトではdeleted_atというカラムがテーブルに追加され、deleteメソッド時にこのカラムに値を入れることで論理削除の仕組みを提供しています。

だからといって、物理削除ができなくなるわけではありません。物理削除にはforceDeleteメソッドが用意されていますので、物理削除も可能です。また、

 sfPropelParanoidBehavior::disable();
とする事で動的に論理/物理削除の振る舞いを変えることも可能です。

その他にも日々プラグインは追加されているようで、それなりの数がこことかここにあるので、興味ある人はいかがでしょうか。