修复 blade hook 优先级被覆盖导致插件失效

This commit is contained in:
Edward Yang 2023-07-07 09:57:45 +08:00
parent 9529d68d38
commit e1a4d1b3cc
2 changed files with 16 additions and 15 deletions

View File

@ -49,10 +49,10 @@ class Hook
}
/**
* @param string $hook
* @param array $params
* @param string $hook
* @param array $params
* @param callable|null $callback
* @param string $htmlContent
* @param string $htmlContent
* @return string|void|null
*/
public function getHook(string $hook, array $params = [], callable $callback = null, string $htmlContent = '')
@ -64,12 +64,11 @@ class Hook
return $this->get($hook, $params, $callback, $htmlContent);
}
/**
* @param string $hook
* @param array $params
* @param string $hook
* @param array $params
* @param callable|null $callback
* @param string $htmlContent
* @param string $htmlContent
* @return string|void|null
*/
public function getWrapper(string $hook, array $params = [], callable $callback = null, string $htmlContent = '')
@ -114,11 +113,15 @@ class Hook
$priority = null;
}
if (isset($this->watch[$hook][$priority])) {
$priority++;
}
$this->watch[$hook][$priority] = [
'function' => $function,
'caller' => [
//'file' => $caller['file'],
//'line' => $caller['line'],
'file' => $caller['file'],
'line' => $caller['line'],
'class' => Arr::get($caller, 'class'),
],
];
@ -192,7 +195,7 @@ class Hook
* Return a new callback object.
*
* @param callable $callback function
* @param array $params parameters
* @param array $params parameters
*
* @return Callback
*/

View File

@ -19,7 +19,6 @@ class HookServiceProvider extends ServiceProvider
});
}
public function boot()
{
$this->bootHookDirectives();
@ -33,7 +32,7 @@ class HookServiceProvider extends ServiceProvider
protected function bootHookDirectives()
{
Blade::directive('hook', function ($parameter) {
$parameter = trim($parameter, '()');
$parameter = trim($parameter, '()');
$parameters = explode(',', $parameter);
$name = trim($parameters[0], "'");
@ -51,7 +50,6 @@ class HookServiceProvider extends ServiceProvider
});
}
/**
* 添加 blade wrapper hook 标签
*
@ -60,9 +58,9 @@ class HookServiceProvider extends ServiceProvider
protected function bootWrapperHookDirectives()
{
Blade::directive('hookwrapper', function ($parameter) {
$parameter = trim($parameter, '()');
$parameter = trim($parameter, '()');
$parameters = explode(',', $parameter);
$name = trim($parameters[0], "'");
$name = trim($parameters[0], "'");
return ' <?php
$__hook_name="' . $name . '";