isbkch / presenter
Laravel 5 的简单视图演示者
0.5
2016-01-13 18:27 UTC
Requires
- php: >=5.5.0
- illuminate/support: ~5.0
Requires (Dev)
- mockery/mockery: ~0.9
- phpspec/phpspec: ~2.0
This package is auto-updated.
Last update: 2020-08-15 18:21:34 UTC
README
- 最初从 Laracasts/Presenters 分支出来,以将其移植到 Laravel 5.2
- 但自从他们不再接受任何拉取请求后,我不得不创建自己的
简单的视图演示者
所以你有一些场景,在这些场景中,在从视图显示一些数据(可能来自你的实体)之前,需要执行一些逻辑。
- 这个逻辑应该硬编码到视图中吗? 不。
- 我们应该将逻辑存储在模型中吗? 再不!
相反,利用视图演示者。这正是它们的作用!此包提供了一个这样的实现。
安装
通过 Composer 拉取此包。
composer require isbkch/presenter
用法
第一步是将您的演示者存储在某个地方 - 任何地方。这些将是非常简单的对象,除了按需格式化数据之外,不做任何事情。
这里是一个演示者的例子。
use Isbkch\Presenter\Presenter; class UserPresenter extends Presenter { public function fullName() { return $this->entity->first . ' ' . $this->entity->last; } public function accountAge() { return $this->entity->created_at->diffForHumans(); } }
接下来,在您的实体上,引入 Isbkch\Presenter\PresentableTrait
特性,这将自动实例化您的演示者类。
这里是一个 Laravel User
模型的例子。
<?php use Isbkch\Presenter\PresentableTrait; class User extends \Eloquent { use PresentableTrait; protected $presenter = 'UserPresenter'; }
现在,在您的视图中,您可以这样做
<h1>Hello, {{ $user->present()->fullName }}</h1>
注意,调用 present()
方法(它将返回您的新或缓存的演示者对象)的好处是,如果您需要修改页面上显示的全名,这将清楚地表明您必须去哪里。
祝您玩得开心!
Ilyas @ http://isbkch.space