7. Laravel5学习笔记:如何定义自己的视图组件

前端之家收集整理的这篇文章主要介绍了7. Laravel5学习笔记:如何定义自己的视图组件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

视图组件


视图组件就是在视图被渲染前,会调用的闭包或类方法。如果你想在每次渲染某些视图时绑定数据,视图组件可以把这样的程序逻辑组织在同一个地方。

对上面的话,理解如下:

  • 这个PHP代码运行的时间是在渲染视图之前
  • 使用这个组件应该用于每次渲染时,都要绑定数据的视图上。这样子就可以从控制器分离出数据绑定逻辑。

它很好的提现了 单一职责 ,对它的概念阐述 请看这里

使用


在laravel5的文档中已经说明了如何构建自己的视图组件。这里在重复一下。

  • 先构建一个视图组件:
<?PHP@H_502_33@

namespace@H_502_33@ App@H_502_33@\Http@H_502_33@\ViewComposers@H_502_33@;

use@H_502_33@ Illuminate@H_502_33@\Contracts@H_502_33@\View@H_502_33@\View@H_502_33@;

class@H_502_33@ ProfileComposer@H_502_33@ {@H_502_33@
    public@H_502_33@ function@H_502_33@ compose@H_502_33@(View $view@H_502_33@)@H_502_33@ {@H_502_33@
        $view@H_502_33@->withName('profile.test'@H_502_33@);
    }
}

相信大家可以看出代码位于哪一个目录下了,我就不多说了。

  • 打造自己的视图组件服务提供者
<?PHP@H_502_33@

namespace@H_502_33@ App@H_502_33@\Providers@H_502_33@;

use@H_502_33@ Illuminate@H_502_33@\Support@H_502_33@\ServiceProvider@H_502_33@;
use@H_502_33@ View@H_502_33@;

class@H_502_33@ ComposerServiceProvider@H_502_33@ extends@H_502_33@ ServiceProvider@H_502_33@ {@H_502_33@
    /** * Bootstrap the application services. * * @return@H_502_33@ void */@H_502_33@
    public@H_502_33@ function@H_502_33@ boot@H_502_33@()@H_502_33@ {@H_502_33@
        // 使用类来指定视图组件@H_502_33@
        View::composer('profile'@H_502_33@,'App\Http\ViewComposers\ProfileComposer'@H_502_33@);
        // 使用闭包来指定视图组件@H_502_33@
        /* View::composer('profile',function($view){ $view->with('name','laravel'); }); */@H_502_33@
    }
}

接下来,要记得把该服务提供者添加config/app.PHP 配置文件providers 数组中

  • 构建视图页面
    这里需要构建一个视图文件文件名称必须与注册时保持一致。这里我们的文件就该命名为:
    profile.blade.PHP 。大家可以尝试在该文件中访问变量 {{ $name }}

如果看到你设置的值,说明你成功了。


Laravel5专题目录

猜你在找的设计模式相关文章