Change `$genericDboActionNames` into private constant in `AbstractEventListener`
authorMatthias Schmidt <gravatronics@live.com>
Wed, 21 Apr 2021 14:48:44 +0000 (16:48 +0200)
committerMatthias Schmidt <gravatronics@live.com>
Wed, 21 Apr 2021 14:48:44 +0000 (16:48 +0200)
wcfsetup/install/files/lib/system/event/listener/AbstractEventListener.class.php

index e3aa1ccfd640e5be6ac641d0a53ffb4fa8c2f50e..f4c0c97d0e3bdbf66a3ed5b17f82fc7926859bda 100644 (file)
@@ -28,16 +28,24 @@ use wcf\data\AbstractDatabaseObjectAction;
  */
 abstract class AbstractEventListener implements IParameterizedEventListener
 {
+    /**
+     * Names of events of `AbstractDatabaseObjectAction` for which the listener tries to call
+     * specific event handler methods for the executed action.
+     */
+    private const DBOACTION_EVENT_NAMES = [
+        'finalizeAction',
+        'initializeAction',
+        'validateAction',
+    ];
+
     /**
      * @inheritDoc
      */
     final public function execute($eventObj, $className, $eventName, array &$parameters)
     {
-        static $genericDboActionNames = ['finalizeAction', 'initializeAction', 'validateAction'];
-
         $methodName = 'on' . \ucfirst($eventName);
 
-        if ($eventObj instanceof AbstractDatabaseObjectAction && \in_array($eventName, $genericDboActionNames)) {
+        if ($eventObj instanceof AbstractDatabaseObjectAction && \in_array($eventName, self::DBOACTION_EVENT_NAMES)) {
             $actionMethod = $methodName . \ucfirst($eventObj->getActionName());
             if (\method_exists($this, $actionMethod)) {
                 $this->{$actionMethod}($eventObj, $parameters);