eru / presenter
1.0.2
2022-04-08 06:35 UTC
Requires
- php: >=5.4.0
- illuminate/support: ~5.0|~6.0|~7.0|~8.0|~9.0
Requires (Dev)
- mockery/mockery: ~0.9
- phpspec/phpspec: ~2.0
README
在这些场景中,你可能需要在从视图中显示一些数据之前执行一些逻辑(很可能是来自你的实体)。
- 这个逻辑应该直接编写到视图中吗? 不。
- 我们应该将逻辑存储在模型中吗? 不,再次回答!
相反,利用视图展示器。这就是它们的目的!此包提供了一种实现方式。
安装
通过 Composer 添加此包。
{ "require": { "laracasts/presenter": "0.1.*" } }
用法
第一步是将你的展示器存储在某处 - 任何地方。这些将只是简单的对象,除了格式化数据外不做其他任何事情。
这里是一个展示器的例子。
use Laracasts\Presenter\Presenter; class UserPresenter extends Presenter { public function fullName() { return $this->first . ' ' . $this->last; } public function accountAge() { return $this->created_at->diffForHumans(); } }
接下来,在你的实体上引入 Laracasts\Presenter\PresentableTrait
特性,这将自动实例化你的展示器类。
这里是一个例子——可能是一个 Laravel User
模型。
<?php use Laracasts\Presenter\PresentableTrait; class User extends \Eloquent { use PresentableTrait; protected $presenter = 'UserPresenter'; }
就是这样!你已经完成了。现在,在你的视图中,你可以这样做
<h1>Hello, {{ $user->present()->fullName }}</h1>
请注意,对 present()
方法的调用(它将返回你的新或缓存的展示器对象)还提供了这样的好处:当你需要修改页面上显示的完整名称时,可以清楚地知道必须去哪里。
祝您玩得开心!
Jeffrey @ https://laracasts.com