php之laravel中自定义模板命令

美女程序员鼓励师

在框架中想要让操作变得简洁,对于命令的熟练调用是必不可少的。说到自定义的命令,那么tojs无疑是非常好的选择。同时对于js语言的切换上也是速度非常快的。下面我们就laravel框架中tojs这种自定义的命令带来详细的介绍,大家也快来看看实际的使用中都会遇到哪些流程吧。

1、创建ToJsServiceProvider

namespace App\Providers;

 

 

 

use App\Helpers\ToJs\ToJs;

 

use Illuminate\Support\Facades\Blade;

 

use Illuminate\Support\ServiceProvider;

 

 

 

class ToJsServiceProvider extends ServiceProvider

 

{

 

    /**

 

     * Bootstrap the application services.

 

     *

 

     * @return void

 

     */

 

    public function boot()

 

    {

 

        //

 

    }

 

 

 

    /**

 

     * Register the application services.

 

     *

 

     * @return void

 

     */

 

    public function register()

 

    {

 

        $this->app->singleton('tojs', function () {

 

            return new ToJs();

 

        });

 

 

 

        /*

 

        * The block of code inside this directive indicates

 

        * the chosen javascript variables.

 

        */

 

        Blade::directive('tojs', function () {

 

            return '';

 

        });

 

    }

 

}

2、ToJs方法主要是对数组的一些操作

namespace App\Helpers\ToJs;

 

 

 

use Illuminate\Support\Arr;

 

 

 

class ToJs

 

{

 

    protected $data = [];

 

 

 

    public function put(array $data)

 

    {

 

        foreach ($data as $key => $value) {

 

            $this->data[$key] = value($value);

 

        }

 

 

 

        return $this;

 

    }

 

 

 

    public function get($key = null, $default = null)

 

    {

 

        if (!$key) return $this->data;

 

 

 

        return Arr::get($this->data, $key, $default);

 

    }

 

 

 

    public function forget($keys)

 

    {

 

        Arr::forget($this->data, $keys);

 

 

 

        return $this;

 

    }

 

}

3、声明facade

namespace App\Helpers\ToJs\Facades;

 

 

 

use Illuminate\Support\Facades\Facade;

 

 

 

 

 

class ToJsFacade extends Facade

 

{

 

    /**

 

     * Get the registered name of the component.

 

     *

 

     * @return string

 

     */

 

    protected static function getFacadeAccessor()

 

    {

 

        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')) {

 

    /**

 

     * Access the javascript helper.

 

     */

 

    function to_js($key = null, $default = null)

 

    {

 

        if (is_null($key)) {

 

            return app('tojs');

 

        }

 

 

 

        if (is_array($key)) {

 

            return app('tojs')->put($key);

 

        }

 

 

 

        return app('tojs')->get($key, $default);

 

    }

 

}

在PHP代码需要的地方调用 to_js(['username'=>'test']);

blade模板直接通过 @tojs 就可以在页面渲染出。

以上就是php之laravel中的自定义模板命令,相信大家已经初步学会了tojs命令的调用,如果想要了解更多的命令,也可以在课后自行查询资料。更多php学习指路:php框架

以上是 php之laravel中自定义模板命令 的全部内容, 来源链接: utcz.com/z/543312.html

回到顶部