]> git.mxchange.org Git - friendica.git/blobdiff - src/Core/Hook.php
Merge pull request #11015 from MrPetovan/task/10979-frio-time-tooltip
[friendica.git] / src / Core / Hook.php
index 8fdadd666a9c769da520feff285f8cc32d21c2d6..81c5d882dc1b6688219e4e057e3d2229491c39f9 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2021, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -99,9 +99,7 @@ class Hook
                        return true;
                }
 
-               $result = DBA::insert('hook', ['hook' => $hook, 'file' => $file, 'function' => $function, 'priority' => $priority]);
-
-               return $result;
+               return self::insert(['hook' => $hook, 'file' => $file, 'function' => $function, 'priority' => $priority]);
        }
 
        /**
@@ -119,10 +117,10 @@ class Hook
 
                // This here is only needed for fixing a problem that existed on the develop branch
                $condition = ['hook' => $hook, 'file' => $file, 'function' => $function];
-               DBA::delete('hook', $condition);
+               self::delete($condition);
 
                $condition = ['hook' => $hook, 'file' => $relative_file, 'function' => $function];
-               $result = DBA::delete('hook', $condition);
+               $result = self::delete($condition);
                return $result;
        }
 
@@ -220,7 +218,7 @@ class Hook
                } else {
                        // remove orphan hooks
                        $condition = ['hook' => $name, 'file' => $hook[0], 'function' => $hook[1]];
-                       DBA::delete('hook', $condition, ['cascade' => false]);
+                       self::delete($condition);
                }
        }
 
@@ -245,4 +243,44 @@ class Hook
 
                return false;
        }
+
+       /**
+        * Deletes one or more hook records
+        *
+        * We have to clear the cached routerDispatchData because addons can provide routes
+        *
+        * @param array $condition
+        * @return bool
+        * @throws \Exception
+        */
+       public static function delete(array $condition)
+       {
+               $result = DBA::delete('hook', $condition);
+
+               if ($result) {
+                       DI::cache()->delete('routerDispatchData');
+               }
+
+               return $result;
+       }
+
+       /**
+        * Inserts a hook record
+        *
+        * We have to clear the cached routerDispatchData because addons can provide routes
+        *
+        * @param array $condition
+        * @return bool
+        * @throws \Exception
+        */
+       private static function insert(array $condition)
+       {
+               $result = DBA::insert('hook', $condition);
+
+               if ($result) {
+                       DI::cache()->delete('routerDispatchData');
+               }
+
+               return $result;
+       }
 }