laracasts / presenter
简单的视图展示者
0.2.7
2024-05-10 00:35 UTC
Requires
- php: >=5.4.0
- illuminate/support: ~5.0|~6.0|~7.0|~8.0|^9.0|^10.0|^11.0
Requires (Dev)
- mockery/mockery: ~0.9|^1.6
- phpspec/phpspec: ~2.0|^7.5
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