
在框架中想要让操作变得简洁,对于命令的熟练调用是必不可少的。说到自定义的命令,那么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



















































暂无评论内容