在框架中想要让操作变得简洁,对于命令的熟练调用是必不可少的。说到自定义的命令,那么tojs无疑是非常好的选择。同时对于js语言的切换上也是速度非常快的。下面我们就laravel框架中tojs这种自定义的命令带来详细的介绍,大家也快来看看实际的使用中都会遇到哪些流程吧。
1、创建ToJsServiceProvider
namespaceApp\Providers; useApp\Helpers\ToJs\ToJs; useIlluminate\Support\Facades\Blade; useIlluminate\Support\ServiceProvider; classToJsServiceProviderextendsServiceProvider { /** *Bootstraptheapplicationservices. * *@returnvoid */ publicfunctionboot() { // } /** *Registertheapplicationservices. * *@returnvoid */ publicfunctionregister() { $this->app->singleton('tojs',function(){ returnnewToJs(); }); /* *Theblockofcodeinsidethisdirectiveindicates *thechosenjavascriptvariables. */ Blade::directive('tojs',function(){ return''; }); } }
2、ToJs方法主要是对数组的一些操作
namespaceApp\Helpers\ToJs; useIlluminate\Support\Arr; classToJs { protected$data=[]; publicfunctionput(array$data) { foreach($dataas$key=>$value){ $this->data[$key]=value($value); } return$this; } publicfunctionget($key=null,$default=null) { if(!$key)return$this->data; returnArr::get($this->data,$key,$default); } publicfunctionforget($keys) { Arr::forget($this->data,$keys); return$this; } }
3、声明facade
namespaceApp\Helpers\ToJs\Facades; useIlluminate\Support\Facades\Facade; classToJsFacadeextendsFacade { /** *Gettheregisterednameofthecomponent. * *@returnstring */ protectedstaticfunctiongetFacadeAccessor() { return'tojs'; } }
4、在config数组添加serviceProvider
providers 添加
\App\Providers\ToJsServiceProvider::class
aliases 添加
'ToJs' => \App\Helpers\ToJs\Facades\ToJsFacade::class,
5、为了方便调用可以在写一个helper方法
if(!function_exists('to_js')){ /** *Accessthejavascripthelper. */ functionto_js($key=null,$default=null) { if(is_null($key)){ returnapp('tojs'); } if(is_array($key)){ returnapp('tojs')->put($key); } returnapp('tojs')->get($key,$default); } }
在PHP代码需要的地方调用 to_js(['username'=>'test']);
blade模板直接通过 @tojs 就可以在页面渲染出。
原文来自:https://www.py.cn© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容