propel.iniのpropel.builder.addBehaviors
propel.builder.addBehaviors = true と設定することによって、sfMixerでPeerモデルクラスのdoSelectに処理を突っ込んだり、BaseObjectを継承したモデルクラスにメソッドを追加したりできます。
class Sortable{ /** * 名前で並べ替え * * @param string $class クラス名 * @param Criteria $c * @param Connection $con */ public function orderByName($class, Criteria $c, $con) { $c->addAscendingOrderByColumn(constant( $class . 'Peer::NAME')); } } sfMixer::register('BaseStaffPeer:addDoSelectRS:addDoSelectRS', array('Sortable','orderByName')); sfMixer::register('BaseCustomerPeer:addDoSelectRS:addDoSelectRS', array('Sortable','orderByName'));
class Driver { /** * ドライバーのランクを取得 * * @param Staff $s */ public function getRank($s) { return PointPeer::retrieveByPK($s->getId())->getRank(); } } sfMixer::register('BaseStaff', array('Driver','getRank'));