summaryrefslogtreecommitdiff
path: root/app/php/events/EventModule.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/php/events/EventModule.php')
-rw-r--r--app/php/events/EventModule.php53
1 files changed, 0 insertions, 53 deletions
diff --git a/app/php/events/EventModule.php b/app/php/events/EventModule.php
deleted file mode 100644
index 6474523..0000000
--- a/app/php/events/EventModule.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-class EventModule extends TModule {
-
- public function init($config) {
- $reflection = new ReflectionClass($this);
- foreach ($reflection->getMethods() as $method) {
- if (is_a($method->class, get_class(), TRUE)) {
- $eventPattern = [];
- if (preg_match('/^on(.*)/', $method->name, $eventPattern)) {
- $this->_registerEventHandler(
- $eventPattern[1],
- $method->getClosure($this)
- );
- }
- }
- }
- if (get_class() === get_called_class()) {
- $directory = dirname(__FILE__);
- foreach (scandir($directory) as $dirEntry) {
- $classNameMatch = [];
- if (preg_match('/(.*)\.php$/', $dirEntry, $classNameMatch)) {
- $className = $classNameMatch[1];
- include_once($directory . DIRECTORY_SEPARATOR . $dirEntry);
- if ($className != get_class()
- && is_a($className, get_class(), TRUE)) {
- $class = new $className();
- $class->init(NULL);
- }
- }
- }
- }
- }
-
- protected static $_handlers = [];
- private function _registerEventHandler($event, $handler) {
- if (!isset(self::$_handlers[$event])) {
- self::$_handlers[$event] = [];
- }
- self::$_handlers[$event][] = $handler;
- }
-
- public function raiseApplicationEvent($event, ...$params) {
- if (isset(self::$_handlers[$event])) {
- foreach (self::$_handlers[$event] as $handler) {
- call_user_func_array($handler, $params);
- }
- }
- }
-
-}
-
-?>