Refactor Hook and Addon to systematically use Hook::delete

This commit is contained in:
Hypolite Petovan 2020-07-27 01:33:24 -04:00
parent afb882048e
commit bd1f4ebbde
2 changed files with 36 additions and 17 deletions

View file

@ -136,7 +136,7 @@ class Addon
$func(); $func();
} }
DBA::delete('hook', ['file' => 'addon/' . $addon . '/' . $addon . '.php']); Hook::delete(['file' => 'addon/' . $addon . '/' . $addon . '.php']);
unset(self::$addons[array_search($addon, self::$addons)]); unset(self::$addons[array_search($addon, self::$addons)]);
} }
@ -204,17 +204,9 @@ class Addon
} }
Logger::notice("Addon {addon}: {action}", ['action' => 'reload', 'addon' => $addon['name']]); Logger::notice("Addon {addon}: {action}", ['action' => 'reload', 'addon' => $addon['name']]);
@include_once($fname);
if (function_exists($addonname . '_uninstall')) { self::uninstall($fname);
$func = $addonname . '_uninstall'; self::install($fname);
$func(DI::app());
}
if (function_exists($addonname . '_install')) {
$func = $addonname . '_install';
$func(DI::app());
}
DBA::update('addon', ['timestamp' => $t], ['id' => $addon['id']]);
} }
} }

View file

@ -99,9 +99,7 @@ class Hook
return true; return true;
} }
$result = DBA::insert('hook', ['hook' => $hook, 'file' => $file, 'function' => $function, 'priority' => $priority]); return self::insert(['hook' => $hook, 'file' => $file, 'function' => $function, 'priority' => $priority]);
return $result;
} }
/** /**
@ -119,10 +117,10 @@ class Hook
// This here is only needed for fixing a problem that existed on the develop branch // This here is only needed for fixing a problem that existed on the develop branch
$condition = ['hook' => $hook, 'file' => $file, 'function' => $function]; $condition = ['hook' => $hook, 'file' => $file, 'function' => $function];
DBA::delete('hook', $condition); self::delete($condition);
$condition = ['hook' => $hook, 'file' => $relative_file, 'function' => $function]; $condition = ['hook' => $hook, 'file' => $relative_file, 'function' => $function];
$result = DBA::delete('hook', $condition); $result = self::delete($condition);
return $result; return $result;
} }
@ -220,7 +218,7 @@ class Hook
} else { } else {
// remove orphan hooks // remove orphan hooks
$condition = ['hook' => $name, 'file' => $hook[0], 'function' => $hook[1]]; $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; 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;
}
} }