. * * @author TechFuze * @copyright Copyright (c) 2013 - 2016, Techfuze. (http://techfuze.net) * @copyright Copyright (c) 1996 - 2015, Free Software Foundation, Inc. (http://www.fsf.org/) * @license http://opensource.org/licenses/GPL-3.0 GPLv3 License * * @link http://fuzeworks.techfuze.net * @since Version 0.0.1 * * @version Version 0.0.1 */ namespace Module\Example; use FuzeWorks\Module; use FuzeWorks\Event; use FuzeWorks\EventPriority; use FuzeWorks\Events; use FuzeWorks\Logger; /** * Example module. * * Use this is a reference to create new modules. * * @author Abel Hoogeveen * @copyright Copyright (c) 2013 - 2016, Techfuze. (http://techfuze.net) */ class Main { use Module; /** * Loads the module and registers the events. * * Every main moduleclass needs an onLoad method. This method is called first before anything else and cam be used to do some global actions. */ public function onLoad() { // Here we register an eventListener for the ExampleEvent. See ExampleListener for more info Events::addListener(array($this, 'exampleListener'), 'ExampleEvent', EventPriority::NORMAL); } /** * Test method that can be called. * * @return string Example text */ public function test() { return 'It works!'; } /** * An example listener that introduces you to the basics of event handling. * * @param ExampleEvent $event The event to listen for * * @return ExampleEvent The event after it has been handled */ public function exampleListener($event) { Logger::log('Called the eventListener. This listener can now handle the event and change some data'); // For this listener, we only change one variable $event->setVariable('New Value'); // And then we return it return $event; } /** * In this example we create a simple event. This event will be created, passed around and then received in the example listener. */ public function createEvent() { // First we log some data Logger::log('Now creating a test event.'); // First we create the event object and some variables to assign to it $eventObject = new ExampleEvent(); $variable = 'Test Variable'; // Then we fire the event by parsing the event object and the variables into the fireEvent function. $event = Events::fireEvent($eventObject, $variable); // Here we can read some variables from the event $result = $event->getVariable(); // And now we can do things with the data. For now we just return it return $result; } /** * Gets called when the path matches the regex of this module. * * @param array Regex matches */ public function route($matches = array()) { // Just print the inputted data: echo '

Input data: '.$matches['data'].'

'; } } class ExampleEvent extends Event { private $var1; public function init($variable) { $this->var1 = $variable; } public function getVariable() { return $this->var1; } public function setVariable($var) { $this->var1 = $var; } }