支持 blade hook 循环体传值
This commit is contained in:
parent
e1a4d1b3cc
commit
33784ebbdb
|
|
@ -5,6 +5,7 @@ namespace Beike\Hook;
|
||||||
use Beike\Hook\Console\HookListeners;
|
use Beike\Hook\Console\HookListeners;
|
||||||
use Illuminate\Support\Facades\Blade;
|
use Illuminate\Support\Facades\Blade;
|
||||||
use Illuminate\Support\ServiceProvider;
|
use Illuminate\Support\ServiceProvider;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
class HookServiceProvider extends ServiceProvider
|
class HookServiceProvider extends ServiceProvider
|
||||||
{
|
{
|
||||||
|
|
@ -36,6 +37,7 @@ class HookServiceProvider extends ServiceProvider
|
||||||
$parameters = explode(',', $parameter);
|
$parameters = explode(',', $parameter);
|
||||||
|
|
||||||
$name = trim($parameters[0], "'");
|
$name = trim($parameters[0], "'");
|
||||||
|
$definedVars = $this->parseParameters($parameters);
|
||||||
|
|
||||||
return ' <?php
|
return ' <?php
|
||||||
$__definedVars = (get_defined_vars()["__data"]);
|
$__definedVars = (get_defined_vars()["__data"]);
|
||||||
|
|
@ -43,6 +45,7 @@ class HookServiceProvider extends ServiceProvider
|
||||||
{
|
{
|
||||||
$__definedVars = [];
|
$__definedVars = [];
|
||||||
}
|
}
|
||||||
|
'. $definedVars .'
|
||||||
$output = \Hook::getHook("' . $name . '",["data"=>$__definedVars],function($data) { return null; });
|
$output = \Hook::getHook("' . $name . '",["data"=>$__definedVars],function($data) { return null; });
|
||||||
if ($output)
|
if ($output)
|
||||||
echo $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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue