]> git.mxchange.org Git - friendica.git/commitdiff
Refactor Hook and Addon to systematically use Hook::delete
authorHypolite Petovan <hypolite@mrpetovan.com>
Mon, 27 Jul 2020 05:33:24 +0000 (01:33 -0400)
committerHypolite Petovan <hypolite@mrpetovan.com>
Mon, 27 Jul 2020 06:33:08 +0000 (02:33 -0400)
src/Core/Addon.php
src/Core/Hook.php

index ee70a66b6e47fd025b9c6e365f708110ffe29a8b..0462504e70a29d01457fa5a1d5ecf4fd56c011c5 100644 (file)
@@ -136,7 +136,7 @@ class Addon
                        $func();
                }
 
-               DBA::delete('hook', ['file' => 'addon/' . $addon . '/' . $addon . '.php']);
+               Hook::delete(['file' => 'addon/' . $addon . '/' . $addon . '.php']);
 
                unset(self::$addons[array_search($addon, self::$addons)]);
        }
@@ -204,17 +204,9 @@ class Addon
                        }
 
                        Logger::notice("Addon {addon}: {action}", ['action' => 'reload', 'addon' => $addon['name']]);
-                       @include_once($fname);
 
-                       if (function_exists($addonname . '_uninstall')) {
-                               $func = $addonname . '_uninstall';
-                               $func(DI::app());
-                       }
-                       if (function_exists($addonname . '_install')) {
-                               $func = $addonname . '_install';
-                               $func(DI::app());
-                       }
-                       DBA::update('addon', ['timestamp' => $t], ['id' => $addon['id']]);
+                       self::uninstall($fname);
+                       self::install($fname);
                }
        }
 
index 8fdadd666a9c769da520feff285f8cc32d21c2d6..851dd60ed945277a2c86a9c8addd41c313aaf428 100644 (file)
@@ -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, ['cascade' => false]);
                }
        }
 
@@ -245,4 +243,33 @@ class Hook
 
                return false;
        }
+
+       /**
+        * Deletes one or more hook records
+        *
+        * @param array $condition
+        * @param array $options
+        * @return bool
+        * @throws \Exception
+        */
+       public static function delete(array $condition, array $options = [])
+       {
+               $result = DBA::delete('hook', $condition, $options);
+
+               return $result;
+       }
+
+       /**
+        * Inserts a hook record
+        *
+        * @param array $condition
+        * @return bool
+        * @throws \Exception
+        */
+       private static function insert(array $condition)
+       {
+               $result = DBA::insert('hook', $condition);
+
+               return $result;
+       }
 }