php之laravel中自定义模板命令

在框架中想要让操作变得简洁,对于命令的熟练调用是必不可少的。说到自定义的命令,那么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
喜欢就支持一下吧
点赞8 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容