erikgall / presenter
简单的视图展示者
v1.0.0
2015-06-30 19:33 UTC
Requires
- php: >=5.4
- illuminate/support: ~5.0
Requires (Dev)
- mockery/mockery: ~0.9
- phpspec/phpspec: ~2.0
This package is auto-updated.
Last update: 2024-09-15 16:11:19 UTC
README
在您需要先执行一些逻辑然后再显示某些数据(可能是来自您的实体)的场景中,您会遇到这些情况。
- 这个逻辑应该硬编码到视图中吗? 不。
- 我们应该将逻辑存储在模型中吗? 再次不!
相反,利用视图展示者。这正是它们的作用!此包提供了一个这样的实现。
安装
通过Composer引入此包。
{ "require": { "erikgall/presenter": "1.*" } }
用法
第一步是将您的展示者存储在某个地方——任何地方。这些将是非常简单的对象,除了格式化数据外,不做任何事情。
这是一个展示者的示例。
use EGALL\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 EGALL\Presenter\PresentableTrait; class User extends \Eloquent { use PresentableTrait; protected $presenter = 'UserPresenter'; }
就这样!您完成了。现在,在您的视图中,您可以这样做
<h1>Hello, {{ $user->present()->fullName }}</h1>