From 33784ebbdb6f67521a49f0c37815f7e2172959a0 Mon Sep 17 00:00:00 2001 From: Edward Yang Date: Fri, 7 Jul 2023 14:15:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=20blade=20hook=20=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF=E4=BD=93=E4=BC=A0=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- beike/Hook/HookServiceProvider.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) 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; + } }