diff --git a/beike/Hook/HookServiceProvider.php b/beike/Hook/HookServiceProvider.php index 326ea2dc..f7c8d298 100644 --- a/beike/Hook/HookServiceProvider.php +++ b/beike/Hook/HookServiceProvider.php @@ -5,6 +5,7 @@ namespace Beike\Hook; use Beike\Hook\Console\HookListeners; use Illuminate\Support\Facades\Blade; use Illuminate\Support\ServiceProvider; +use Illuminate\Support\Str; class HookServiceProvider extends ServiceProvider { @@ -36,6 +37,7 @@ class HookServiceProvider extends ServiceProvider $parameters = explode(',', $parameter); $name = trim($parameters[0], "'"); + $definedVars = $this->parseParameters($parameters); return ' $__definedVars],function($data) { return null; }); if ($output) echo $output; @@ -84,4 +87,23 @@ class HookServiceProvider extends ServiceProvider ?>'; }); } + + /** + * Parse parameters from Blade + * + * @param $parameters + * @return string + */ + protected function parseParameters($parameters):string + { + $definedVars = ''; + foreach ($parameters as $paraItem) { + $paraItem = trim($paraItem); + if (Str::startsWith($paraItem,'$')) { + $paraKey = trim($paraItem, '$'); + $definedVars .= '$__definedVars["'.$paraKey.'"] = $'.$paraKey.';'; + } + } + return $definedVars; + } }