isbkch/presenter

Laravel 5 的简单视图演示者

0.5 2016-01-13 18:27 UTC

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