roshangautam / presenter
简单的Laravel视图展示器
v1.0.1
2016-06-13 17:42 UTC
Requires
- php: >=5.4.0
- illuminate/support: ~5.0
Requires (Dev)
- mockery/mockery: ~0.9
- phpspec/phpspec: ~2.0
This package is auto-updated.
Last update: 2024-09-06 17:16:26 UTC
README
在一些场景中,在从视图显示某些数据(可能来自你的实体)之前需要执行一些逻辑。
- 这个逻辑是否应该硬编码到视图中?不。
- 我们是否应该将逻辑存储在模型中?再次回答:不!
相反,利用视图展示器。这正是它们的作用!这个包提供了一种这样的实现。
安装
通过Composer引入这个包。
composer require roshangautam/presenter
用法
第一步是将你的展示器存储在某个地方——任何地方。这些将是非常简单的对象,它们所做的只是按需格式化数据。
以下是一个展示器的示例。
use RoshanGautam\Presenter\Presenter; class UserPresenter extends Presenter { public function fullName() { return $this->first . ' ' . $this->last; } public function accountAge() { return $this->created_at->diffForHumans(); } }
接下来,在你的实体上引入RoshanGautam\Presenter\PresentableTrait
特性,这将自动实例化你的展示器类。
以下是一个示例——可能是一个Laravel的User
模型。
<?php use RoshanGautam\Presenter\PresentableTrait; class User extends \Eloquent { use PresentableTrait; protected $presenter = 'UserPresenter'; }
就这样!你已经完成了。现在,在你的视图中,你可以做
<h1>Hello, {{ $user->present()->fullName }}</h1>
注意调用present()
方法(它将返回你的新或缓存的展示器对象)的好处,这也清楚地表明了,如果你需要修改页面上全名显示的方式,你必须去哪里修改。
祝您玩得开心!