Json app()中的第二个参数->;singleton在laravel 5.4中是一个空数组
我想在laravel5.4中的AppServiceProvider中注册两个singleton方法。 像这样:Json app()中的第二个参数->;singleton在laravel 5.4中是一个空数组,json,laravel,laravel-5.4,Json,Laravel,Laravel 5.4,我想在laravel5.4中的AppServiceProvider中注册两个singleton方法。 像这样: public function register() { app()->singleton('isJson', function ($app, $args) { dd($args); // return empty Array return is_string($args[0]) && is_array(json_dec
public function register()
{
app()->singleton('isJson', function ($app, $args) {
dd($args); // return empty Array
return is_string($args[0]) && is_array(json_decode($args[0], TRUE)) && (json_last_error() == JSON_ERROR_NONE);
});
app()->singleton('jsonDecode', function ($app, $args) {
dd($args); // return ['0' =>10000]
if (!$app->make('isJson', $args)) // here I sent same array to isJson
return $args[0];
return array_map(function ($item) use ($app) {
return !$app->make('isJson', [$item]) ? $item : $app->make('jsonDecode', [$item]);
}, json_decode($args[0], TRUE));
});
}
如您所见,我在jsonDecode
中使用isJson
检查发送的参数是否为json格式的文本
现在每当我调用jsonDecode
时,例如:
app('jsonDecode', ['0' =>10000]);
jsonDecode
方法中的args
准确地接收相同的数组,但当发送到isJson
方法时,它总是返回一个空数组
在上述代码中,运行时发生的情况显示为注释(此
dd
方法) 这些单例怎么样?你有没有理由不为它们创建基本的帮助函数?