erikgall/presenter

简单的视图展示者

v1.0.0 2015-06-30 19:33 UTC

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>