コード例 #1
0
ファイル: Events.tests.php プロジェクト: stuartherbert/mf
 public function testCanTriggerMultipleListeners()
 {
     $listener = new Test_Event_ListenerObj();
     Events_Manager::listensToEvents($listener);
     Events_Manager::listensToEvents('Test_Event_ListenerStatic');
     $obj = new Test_Event_Triggered();
     // entry conditions
     $listeners = Events_Manager::getListeners();
     $this->assertEquals(2, count($listeners));
     $this->assertEquals(2, count($listeners['testEvent1']));
     $this->assertEquals(2, count($listeners['testEvent2']));
     // change state
     $obj->doSomething();
     $obj->doSomethingElse();
     // retest
     $this->assertEquals(2, $listener->eventsTriggered);
     $this->assertEquals(array('e', 'f', 'g'), $listener->data);
     $this->assertEquals(2, Test_Event_ListenerStatic::$eventsTriggered);
     $this->assertEquals(array('e', 'f', 'g'), Test_Event_ListenerStatic::$data);
 }
コード例 #2
0
    public static function registerCache($cache, $modelName)
    {
        self::$aCaches[$modelName][] = $cache;
    }
    public static function listenToModelExtended($extensionClass, $modelName)
    {
        // var_dump('DataModel_Definitions::listenToModelExtended() called');
        // a model has just been extended
        // now, give the extension a chance to add new fields to
        // the model's definition
        $oDef = self::get($modelName);
        call_user_func_array(array($extensionClass, 'extendsModelDefinition'), array($oDef));
    }
}
// tell the Events mechanism that we need to be kept in the loop ..
Events_Manager::listensToEvents('DataModel_Definitions');
// ========================================================================
// ------------------------------------------------------------------------
class DataModel_Definition
{
    protected $primaryKeys = null;
    protected $autoPrimaryKey = true;
    protected $aForeignKeys = array();
    protected $aFields = array();
    protected $aMandatoryFields = array();
    protected $aFieldsBySource = array();
    protected $aoBehaviours = array();
    protected $aViews = array();
    protected $aRelationships = array();
    protected $aIndices = array();
    private $modelName = "";