<?php // $Id$
// vim: expandtab sw=4 ts=4 sts=4: # ***** BEGIN LICENSE BLOCK ***** # This file is part of EventManager. # Copyright (c) 2005-2007 Frederic Minne <zefredz@gmail.com>. # All rights reserved. # # EventManager is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # EventManager is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with DotClear; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # ***** END LICENSE BLOCK ***** require_once dirname(__FILE__) . "/event/inc.event.php";
// ---------------------- Test Class --------------------
/** * Sample event driven object */ class MyEventDrivenObject extends EventDriven { /** * sample event callback */ function onHelloEventCallMe( ) { echo "Hello World\n"; }
/** * sample event callback */ function onHelloEventCallMe2( ) { echo "Hello World 2\n"; }
/** * sample event callback */ function onAnotherEventCallMe( ) { echo "another event occurs\n"; }
/** * main() method * @static */ function main( ) { echo "> creating objects...\n"; $registry = EventManager::getInstance(); $edo = new MyEventDrivenObject(); $em = new EventGenerator(); echo "> done\n\n";
echo "> registrering listeners\n"; $id1 = $edo->addListener( "hello", 'onHelloEventCallMe' ); $id2 = $edo->addListener( "another", 'onAnotherEventCallMe' ); echo "> done\n\n";
echo "> sending events\n"; $em->sendEvent( new Event("hello") ); $em->sendEvent( new Event("another") ); echo "> done\n\n";
echo "> lists\n"; echo "* registry:\n"; $registry->listRegisteredListeners( );
echo "> registrering another hello listener\n"; $id3 = $edo->addListener( "hello", 'onHelloEventCallMe2' ); echo "> done\n\n";
echo "> lists\n"; echo "* registry:\n"; $registry->listRegisteredListeners( );
echo "> sending events\n"; $em->sendEvent( new Event("hello") ); $em->sendEvent( new Event("another") ); echo "> done\n\n"; echo "> sending events staticaly\n"; EventManager::notify( new Event("hello") ); EventManager::notify( new Event("another") ); echo "> done\n\n";
echo "> unregistrering another and second hello listener\n"; $edo->removeListener( "another", $id2 ); $edo->removeListener( "hello", $id3 ); echo "> done\n\n";
echo "> lists\n"; echo "* registry:\n"; $registry->listRegisteredListeners( );
echo "> sending events\n"; $em->sendEvent( new Event("hello") ); $em->sendEvent( new Event("another") ); echo "> done\n"; } }
// -------------------- Run Test ---------------------
if ( ! defined( "DEBUG_MODE" ) ) define ( "DEBUG_MODE", true ); echo "<pre>"; MyEventDrivenObject::main(); echo "</pre>"; ?>
|