• 技术文章 >PHP >PHP框架

    php之laravel中自定义模板命令

    小妮浅浅小妮浅浅2021-02-20 15:26:08转载5538

    在框架中想要让操作变得简洁,对于命令的熟练调用是必不可少的。说到自定义的命令,那么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
    上一篇:php之laravel调度执行及出错解决 下一篇:PHP中CI框架的运行模式

    相关文章推荐

    • php查找算法是什么• php数组中二分查找是什么• php中while和do...while有何不同• php中str_replace如何替换?• php之Swoole连接服务器• array_values()在php中返回数组的操作

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网