Advanced components - Eventlisteners - Creating new listener.php 956 Bytes
Newer Older
doctrine's avatar
doctrine committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
<?php
class MyListener extends Doctrine_EventListener {
    public function onLoad(Doctrine_Record $record) {
        print $record->getTable()->getComponentName()." just got loaded!";
    }
    public function onSave(Doctrine_Record $record) {
        print "saved data access object!";
    }
}
class MyListener2 extends Doctrine_EventListener {
    public function onPreUpdate() {
        try {
            $record->set("updated",time());
        } catch(InvalidKeyException $e) { 
        }
    }
}


// setting global listener
$manager = Doctrine_Manager::getInstance();

$manager->setAttribute(Doctrine::ATTR_LISTENER,new MyListener());

25 26
// setting connection level listener
$conn = $manager->openConnection($dbh);
doctrine's avatar
doctrine committed
27

28
$conn->setAttribute(Doctrine::ATTR_LISTENER,new MyListener2());
doctrine's avatar
doctrine committed
29 30

// setting factory level listener
31
$table = $conn->getTable("User");
doctrine's avatar
doctrine committed
32 33 34

$table->setAttribute(Doctrine::ATTR_LISTENER,new MyListener());
?>